PHP线程安全吗?

2022-08-30 09:46:58
  • PHP(从5.2开始)在Linux/UNIX上是线程安全的吗?
  • 是否可以将其与Apache Worker-MPM或Event-MPM一起使用?

到目前为止,我收集的事实是不确定的:

  • 大多数发行版中包含的默认二进制文件都禁用了 ZTS,因此我知道,我必须重新编译它们。
  • 从理论上讲,启用了 ZTS 的 Zend 引擎(核心 PHP)是线程安全的。
  • 据说有些模块可能不是线程安全的,但我没有找到任何模块列表,这些模块是或不是。
  • PHP FAQ的状态与上面几乎相同。

你有什么经验?

这不仅仅是关于分段错误(Windows命名法中的“访问冲突”)。线程安全还有很多。


答案 1

我知道 gettext 和 set_locale 不是线程安全的。PHP 不应与线程 MPM 一起使用。

PHP还不是线程安全的
运行 PHP 未线程化


答案 2

有关线程安全和非线程安全扩展的列表(*标记为不是线程安全的,而其他扩展是),请参阅从何处可以获得编译某些可选 PHP 扩展所需的库?


推荐