PHP中什么线程安全(TS)和非线程安全(NTS)
阿神
阿神 2017-04-10 15:54:24
[PHP讨论组]

能否详细说明。

阿神
阿神

闭关修行中......

全部回复(2)
阿神

只需要明确一点,线程安全是为了适配多线程.
比如你要使用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中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号