Thread-safety
Потоковая безопасность (англ. thread-safety) — это концепция программирования, применимая к многопоточным программам. Код потоково-безопасный, если он функционирует корректно при использовании из нескольких потоков одновременно. В частности, он должен обеспечивать корректный доступ нескольких потоков к разделяемым данным.
В общем случае потоковая безопасность сложно устанавливается. Но существует несколько источников выявления нарушений потоковой безопасности:
- доступ к глобальным переменным или динамической памяти (куче);
- выделение/освобождение ресурсов имеющих глобальные ограничения (файлы, процессы и др.);
- неявный доступ через ссылки и указатели;
- побочный эффект функций;
Есть несколько способов достигнуть потоковой безопасности:
- Реентерабельность
- Написание кода в таком стиле, что он может быть частично выполнен одним потоком, затем другим, и продолжен первым. Это требует сохранения состояния в локальных переменных, обычно на стеке, вместо глобальных или статических переменных.
- Линеаризуемость
- Написание кода процедур (операций) таким образом, что результат любого их параллельного выполнения эквивалентен некоторому последовательному выполнению.
Ссылки
de:Threadsicherheit en:Thread safety es:Thread-Safety fr:Threadsafe ja:スレッドセーフ ko:스레드 안전 pl:Bezpieczeństwo wątków pt:Thread safety zh:线程安全
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....