Thread Safe 和 Non Thread Safe 的选择?

Posted jlolox

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Thread Safe 和 Non Thread Safe 的选择?相关的知识,希望对你有一定的参考价值。

首先,Thread Safe 是指程序在运行时需对线程(thread)进行安全检查,以防止有新要求就启动新线程的 CGI 执行方式耗尽系统资源。None Thread Safe 则指程序在运行时不对线程进行安全检查。

  再来看 php 的两种服务模式:ISAPI 和 FastCGI 。ISAPI 服务模式是以 DLL 动态库的形式被调用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率。而 FastCGI 执行方式则是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查反而可以提高执行效率。

  所以,简单的概括就是当 PHP 以 ISAPI 模式运行服务时,选择 Thread Safe 版本;以 FastCGI 模式运行服务时,选择 Non Thread Safe 版本。可以通过 phpinfo() 函数页面里的 Thread Safety 项查询当前 PHP 版本是不是线程安全的。

注:ISAPI 和 FastCGI 无需在 PHP 中设置,其取决于Web Server(Apache、IIS、nginx)以哪种模式与 PHP 合作完成服务。





以上是关于Thread Safe 和 Non Thread Safe 的选择?的主要内容,如果未能解决你的问题,请参考以下文章

PHP版本Non Thread Safe和Thread Safe如何选择?区别是什么?

php5 non-thread-safe和thread-safe这两个版本有何区别?

PHP Thread Safe和Non ThreadSafe

PHP关于VC11,VC9,VC6以及Thread Safe和Non Thread Safe版本选择的问题

chromium之task

调试php程序的简单步骤