PHP Thread Safe 与 None Thread Safe 版本的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/daiyutage/article/details/48996145
/*
 * PHP 版本Thread Safe 与 None Thread Safe的区别
 * 从2000年发布的第一个Windows PHP版本PHP3.0.17开始都是线程安全的版本,这是由于LINUX/UNIX
 * 采用的是多进程的形式,而windows采用的是多线程的方式。如果在IIS下运行CGI会特别慢,因为IIS采
 * 用多线程而非多进程,CGI是建立在多进程之上的。
 * 一般我们会把PHP配置成ISAPI的方式,因为ISAPI的方式是多线程的,这样运行就快多了,但是由于历史
 * 原因,大部分的PHP扩展都是以Linux/Unix多进程思想开发的,这些扩展在IIS运行时会搞垮IIS,因此在
 * IIS下,CGI才是PHP最安全的运行方式,但是CGI对于每个HTTP请求都要重新加载或卸载整个PHP环境,
 * 非常消耗系统资源。
 * 为了兼顾IIS下PHP的效率和安全,微软给出了FastCGI的解决方案,FastCGI可以让进程重复利用,而不
 * 是每次重复建立新的进程,FastCGI可以允许几个进程同时运行,这样既解决了CGI进程消耗太严重的问题,
 * 又利用上了CGI进程模式不存在线程安全的问题。
 * 因此,如果在IIS下运行PHP,就必须要使用PHP Thread Safe 版本,而用FastCGI模式下的话,就没
 * 必要检查线程安全了,用None Thread Safe 能提高运行效率
 * PHP官方的PHP 版本有四个
 * the Visual Studio 2008 compiler ,就是用微软的 VS 编辑器编译的,没有Apache版本,只有
 * IIS版本
 * VC9 x86 Thread Safe
 * VC9 x86 None Thread Safe 
 * VC6 就是 legacy Visual Studio 6 compiler ,就是使用这个编译器编译的。有Apache,和 IIS
 * 版本
 * VC6 x86 Thread Safe 
 * VC6 X86 None Thread Safe
 * 
 * 运行方式的不同:
 * ISAPI,FastCGI
 * ISAPI 以DLL动态链接库的形式使用PHP,在用户的请求完毕后,不会马上结束线程,所以需要进行线程
 * 安全检查,如果是以IIS 来执行PHP,建议使用Thread Safe版本
 * FastCGI 服务器和PHP的一个中间件,用它来管理PHP,可以常驻内存,只需要启动一次,可以同时启动
 * 多个PHP进程,这些进程以单线程形式运行,所以不需要进行线程安全检查,所以使用None Thread Safe
 * 方式.
 * 对于Apache一般选用ISAPI,对于Nginx,一般选FastCGI
 * 
 * 
 * 
 */

没有更多推荐了,返回首页