Что означает потокобезопасность в контексте PHP? [дубликат]
Возможный Дубликат:
Что такое потокобезопасный или не потокобезопасный в PHP
Что это значит, когда что-то является или не является потокобезопасным?
Например, setlocale() в PHP не является потокобезопасным:
Информация о локали сохраняется для каждого процесса, а не для каждого потока. Если вы используете PHP на многопоточном серверном API, таком как IIS или Apache в Windows, вы можете столкнуться с внезапными изменениями в настройках локали во время выполнения сценария выполняется, хотя сам скрипт никогда не вызывал setlocale(). Это происходит из-за того, что другие сценарии выполняются в разных потоках одного и того же процесса одновременно, изменяя языковой стандарт всего процесса с помощью setlocale().
Http://php.net/manual/en/function.setlocale.php
Что это практически означает? Хорошо ли, что что-то является потокобезопасным или нет?
При каких условиях вам нужно потокобезопасное или не потокобезопасное решение для вашего проблемы?
1 answers
Потокобезопасность - это хорошо, это означает, что, хотя может быть несколько параллельных потоков, они разговаривают друг с другом безопасным способом, в котором не будет условий гонки, проблем с параллелизмом и т.д.
Потокобезопасность - это концепция компьютерного программирования, применимая в контексте многопоточных программ. Фрагмент кода является потокобезопасным, если он только обрабатывает общие структуры данных потокобезопасным способом, что обеспечивает безопасное выполнение несколькими потоками одновременно. Существуют различные стратегии создания потокобезопасных структур данных.