Что означает потокобезопасность в контексте PHP? [дубликат]


Возможный Дубликат:
Что такое потокобезопасный или не потокобезопасный в PHP

Что это значит, когда что-то является или не является потокобезопасным?

Например, setlocale() в PHP не является потокобезопасным:

Информация о локали сохраняется для каждого процесса, а не для каждого потока. Если вы используете PHP на многопоточном серверном API, таком как IIS или Apache в Windows, вы можете столкнуться с внезапными изменениями в настройках локали во время выполнения сценария выполняется, хотя сам скрипт никогда не вызывал setlocale(). Это происходит из-за того, что другие сценарии выполняются в разных потоках одного и того же процесса одновременно, изменяя языковой стандарт всего процесса с помощью setlocale().

Http://php.net/manual/en/function.setlocale.php

Что это практически означает? Хорошо ли, что что-то является потокобезопасным или нет?

При каких условиях вам нужно потокобезопасное или не потокобезопасное решение для вашего проблемы?

Author: Community, 2011-12-01

1 answers

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

Потокобезопасность - это концепция компьютерного программирования, применимая в контексте многопоточных программ. Фрагмент кода является потокобезопасным, если он только обрабатывает общие структуры данных потокобезопасным способом, что обеспечивает безопасное выполнение несколькими потоками одновременно. Существуют различные стратегии создания потокобезопасных структур данных.

Источник.

 4
Author: alex, 2011-11-30 22:50:22