pthread на расширение PHP

Я разрабатываю на самом деле PHP расширение (PHP 5.6) (это расширение будет использоваться только на сервере Linux), в этом расширении я хотел бы использовать C pthread,

Можно ли сделать PHP расширение, которое использует pthreadбез необходимости компилировать PHP с ZTS вариант?

Потому что есть расширение, которое можно использовать потоковой с php но это расширение требует компиляции php с zts вариант.
pthreads требует

2

Решение

Возможно использование многопоточности в расширении PHP без Режим ZTS включен, но темы не должен взаимодействовать с любыми внутренними функциями (включая сам код PHP). Это происходит потому, что без включенного режима ZTS нет ничего поточно-ориентированного (очевидно), и в Zend Engine (ZE) довольно много глобальных состояний. Таким образом, вы весьма ограничены в том, что вы можете сделать с потоками в этом случае.

Если вы включите режим ZTS, то потоки могут взаимодействовать с любыми внутренними функциями и кодом PHP, но с архитектурой без общего доступа. должен быть занятым. Это связано с тем, что некоторые части ZE по-прежнему не являются поточно-ориентированными, особенно Zend Memory Manager (ZMM). Это означает, что для каждого потока должна быть сделана отдельная копия интерпретатора PHP (которая включает в себя собственный ZMM), где все функции, классы, интерфейсы, признаки и т. Д. Копируются в этот новый экземпляр интерпретатора для выполнения действий в совершенно отдельный контекст.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]