Почему PHP имеет отдельную версию ts (thread safe)/nts (non thread safe), в то время как она не поддерживает многопоточность?

Я думаю, что название понятно.

Ответы

Ответ 1

Пока вы не можете создавать потоки из PHP-кода, вы можете использовать PHP с многопоточным веб-сервером, который обрабатывает параллельные запросы по различным потокам. В этом случае следует использовать TS (потокобезопасную) версию PHP.

TS-версия PHP сохраняет состояние каждого запроса в его собственной памяти. Это необходимо, потому что все запросы на многопоточном сервере имеют одинаковое адресное пространство.

Альтернативой является использование многопроцессорного (обычно предпродачного) сервера. С таким сервером некоторое состояние может храниться в глобальных переменных, не затрагивая одновременные запросы. Это то, как реализована версия NTS (non thread-safe) PHP.