PHP Thread Safe (TS) vs Non-Thread Safe (NTS)
核心区别在于 PHP 运行时的线程模型。
Thread Safe (TS)
- 编译时启用了 ZTS(Zend Thread Safety) 机制
- 内部使用互斥锁等手段保护全局变量,防止多线程并发冲突
- 适用场景 :配合 IIS 或 Apache (mpm_worker / mpm_event) 等多线程 Web 服务器使用
Non-Thread Safe (NTS)
- 没有线程安全保护,性能略高、开销更小
- 适用场景 :配合 Nginx + PHP-FPM 或 Apache (mpm_prefork) 使用,这些模式下每个请求由独立进程处理,不存在多线程竞争问题
如何选择?
| Web 服务器 | 推荐版本 |
|---|---|
| IIS | TS |
| Apache (worker/event) | TS |
| Apache (prefork) | NTS |
| Nginx + PHP-FPM | NTS |
简单记忆 :用 Nginx 就选 NTS ,用 IIS 就选 TS 。目前生产环境主流是 Nginx + PHP-FPM,所以 NTS 使用得更广泛 。
