Интернет магазин китайских планшетных компьютеров



Компьютеры - Thread-safety

26 апреля 2011





Потоковая безопасность — это концепция программирования, применимая к многопоточным программам. Код потоково-безопасный, если он функционирует корректно при использовании из нескольких потоков одновременно. В частности, он должен обеспечивать корректный доступ нескольких потоков к разделяемым данным.

В общем случае потоковая безопасность сложно устанавливается. Но существует несколько источников выявления нарушений потоковой безопасности:

  • доступ к глобальным переменным или динамической памяти;
  • выделение/освобождение ресурсов, имеющих глобальные ограничения;
  • неявный доступ через ссылки и указатели;
  • побочный эффект функций;

Есть несколько способов достигнуть потоковой безопасности:

Реентерабельность 
Написание кода в таком стиле, что он может быть частично выполнен одним потоком, затем другим, и продолжен первым. Это требует сохранения состояния в локальных переменных, обычно на стеке, вместо глобальных или статических переменных.
Линеаризуемость 
Написание кода процедур таким образом, что результат любого их параллельного выполнения эквивалентен некоторому последовательному выполнению.


Просмотров: 619


<<< Rundown protection
Алгоритм Деккера >>>