扫码关注官方订阅号
能否详细说明。
闭关修行中......
只需要明确一点,线程安全是为了适配多线程. 比如你要使用pthreads这个PHP多线程PECL扩展,那就要求PHP进行线程安全检查. 如果PHP作为模块嵌入到多线程程序运行,比如嵌入到多线程的Linux Event MPM或者WINNT MPM的Apache(mod_php),或者IIS(ISAPI模块,5.3.1开始已经废弃),也需要线程安全版本的PHP. 如果是嵌入到多进程的Linux Prefork MPM(Apache 2.2系列默认MPM)的Apache,或者独立以PHP-FPM(多进程应用)或PHP-CGI运行时,则不需要线程安全. 注意,因为要进行线程安全检查,所以非线程安全版本的PHP效率会更好. Linux上configure时,加上--enable-maintainer-zts参数即可编译线程安全版本的PHP.注意,有些PECL不支持线程安全,也就是说不能在线程安全版本下运行,所以你会看到Xdebug有线程安全和非线程安全的之分.
只有在windows下才有这区分,意思就和字面一样; FastCGI是单一进程执行,所以你不用操心线程安全,用NTS就好,ISAPI相反。
另外,你提的很多问题搜下就有答案。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
只需要明确一点,线程安全是为了适配多线程.
比如你要使用pthreads这个PHP多线程PECL扩展,那就要求PHP进行线程安全检查.
如果PHP作为模块嵌入到多线程程序运行,比如嵌入到多线程的Linux Event MPM或者WINNT MPM的Apache(mod_php),或者IIS(ISAPI模块,5.3.1开始已经废弃),也需要线程安全版本的PHP.
如果是嵌入到多进程的Linux Prefork MPM(Apache 2.2系列默认MPM)的Apache,或者独立以PHP-FPM(多进程应用)或PHP-CGI运行时,则不需要线程安全.
注意,因为要进行线程安全检查,所以非线程安全版本的PHP效率会更好.
Linux上configure时,加上--enable-maintainer-zts参数即可编译线程安全版本的PHP.注意,有些PECL不支持线程安全,也就是说不能在线程安全版本下运行,所以你会看到Xdebug有线程安全和非线程安全的之分.
只有在windows下才有这区分,意思就和字面一样;
FastCGI是单一进程执行,所以你不用操心线程安全,用NTS就好,ISAPI相反。
另外,你提的很多问题搜下就有答案。