php+线程安全+数据库,php多线程

关于PHP线程安全和非线程安全的区别

PHP有2中运行方式:ISAPI和FastCGI。

创新互联是一家专业提供蓬安企业网站建设,专注与做网站、网站设计、H5场景定制、小程序制作等业务。10年已为蓬安众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本;

而FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效率,所以,如果是以FastCGI来执行PHP,建议选择Non Thread Safe版本。

对于apache服务器来说一般选择isapi方式,而对于nginx和IIS服务器则选择FastCGI方式。

php如何保证线程安全

线程安全本身在php

的运行原理上就做到了,每个请求重新分配的内存空间,所谓php

的现线程安全,指的是

php扩展,

随着扩展模块的启动,分配的内存可以提供给多个请求调用.

php线程安全通过全局的global_id

,为每个全局变量做了唯一ID的区分.

PHP线程安全和非线程安全有什么区别

1、windows

+

IIS

+

FastCGI

:使用非线程安全版本。

解释:

以FastCGI方式安装PHP时,PHP拥有独立的进程,并且FastCGI是单一线程的,不存在多个线程之间可能引发的相互干扰(这种干扰通常都是由于全局变量和静态变量导致的)。由于省去了线程安全的检查,因此使用FastCGI方式比ISAPI方式的效率更高一些。

2、windows

+

IIS

+

ISAPI

:使用线程安全版本。

解释:

PHP以ISAPI方式安装时,PHP没有独立的进程,而是作为DLL被IIS加载运行的,即是依附于Web服务器进程的。当Web服务器运行在多线程模式下(IIS正是这种情况),PHP自然也就运行在多线程模式下。只要是在多线程模式下运行,就可能存在线程安全问题,因此应选择PHP的线程安全版本。

3、windows

+

Apache

+

PHP(模块)

:使用线程安全版本。

解释:

如果要在Apache中以模块方式安装PHP,则应该使用PHP的线程安全的版本。原因是当PHP作为Apache的模块安装时,PHP没有独立的进程,而是作为模块以DLL的形式被加载到Apache中的,是随Apache的启动而启动的,而Windows下的Apache为多线程工作模式,因此PHP自然也就运行在多线程模式下。因此,这种情况下应使用PHP的线程安全版本。

如何判断PHP 是线程安全还是非线程安全的

判断PHP 是线程安全还是非线程安全:

1.通过phpinfo(); 查看其中的 Thread Safety 项,这个项目就是查看是否是线程安全,如果是:enabled,一般来说应该是ts版,否则是nts版。

2.命令行:php -i|grep -i thread

结果:Thread Safety = disabled 【disabled表示非线程安全】

如果没有grep命令(windows),那就一个个找吧。

当前文章:php+线程安全+数据库,php多线程
标题网址:https://www.cdcxhl.com/article10/heogdo.html

成都网站建设公司_创新互联,为您提供定制网站建站公司静态网站自适应网站外贸网站建设微信小程序

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站