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安装包)。

文章转自: