先上个图,来个看图不说话,大家通过这个图能看个大概
PHP从5.2.10开始,区分线程安全和非线程安全2个版本。我们就从这两个的区别说起。所谓线程安全(Thread Safe)就是执行时会进行线程安全检查,以防止有新请求时就启动新线程的CGI执行方式耗尽系统资源。非线程安全(None Thread Safe)就是在执行时不进行线程安全检查。
PHP在IIS上运行PHP有ISAPI和FastCGI两种形式(如果是wamp,运行方式是FastCGI)。FastCGI执行方式是以单线程来执行的,所以无需进行线程安全检查,IIS7集成了FastCGI,IIS6也支持,如果是采用FastCGI运行PHP,建议采用非线程安全(None Thread Safe)版本将获得更高的执行效率。
ISAPI执行方式是以DLL动态库的形式使用的,在处理完用的一个请求后不会立即消失,而是继续驻留内存等待处理别的用户请求,直到一段时间后没有用户请求。所以需要进行线程安全检查。安装肯定就是选择TS版本
VC6版本是采用Visual Studio6精心编译的,适合Apache架设的服务器
VC9版本是采用Visual Studio2008进行编译的,适合IIS假设的服务器
参考资料:
Difference between PHP thread safe and non thread safe binaries