欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP Non Thread Safe和Thread Safe区别【转】

程序员文章站 2024-01-30 11:16:46
None Thread Safe就是非线程安全,在执行时不进行线程(thread)安全检查。 Thread Safe就是线程安全,执行时会进行线程(thread)安全检查,以防止有新要求就启动新线程,耗尽系统资源。 再看看这两者的选择。 为了与外部交换数据,PHP提供了一种叫SAPI的接口。 SAP ......

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

文章转自: