PHP Non Thread Safe和Thread Safe区别【转】
None Thread Safe就是非线程安全,在执行时不进行线程(thread)安全检查。
Thread Safe就是线程安全,执行时会进行线程(thread)安全检查,以防止有新要求就启动新线程,耗尽系统资源。
再看看这两者的选择。
为了与外部交换数据,PHP提供了一种叫SAPI的接口。
SAPI是一个中间过程,提供了一个和外部通信的接口,有点类似于socket。
SAPI使得PHP可以和其他应用进行交互数据(如Apache、Nginx等)。
PHP默认提供了很多种SAPI,常见的提供给Apache、Nginx、IIS6/7的FastCGI,单独给IIS的ISAPI,以及Shell的CLI。
FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率。
而线程安全检查是为ISAPI方式的PHP准备的,也就是为IIS准备的,因为有许多php模块都不是线程安全的,所以需要使用Thread Safe的PHP。
所以,如果是以 FastCGI 执行 PHP ,都建议用Non Thread Safe的 PHP (zip安装包)。