记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

关于PHP的线程安全模式(Thread Safety)

2015-04-08 19:05
PHP自身是不支持线程的,但是它在安装的时候,涉及到一个线程安全的问题,Windows下提供了二种安装包,Linux下编译安装提供了–enable-maintainer-zts这个选项。
 
很多人一看到“安全”,就以为是好事,其实不然。
 
既然PHP没有线程,那么这个线程安全指的是什么呢?这和它的运行方式有关。
 
这里仅对Linux系统下流行的两种PHP运行方式(LNMP和LNAMP)来讲一下。
 
如果是LNMP环境,也就是说PHP以php-fpm方式运行,那么就不涉及到线程安全这个问题了,因为php-fpm是以多进程的方式来运行的。
 
如果是以LNAMP或者LAMP方式运行(mod_php),那么应该先了解下Apache的MPM,简单点说,Apache支持以多线程的方式运行(Worker),也支持以多进程的方式运行(Prefork)。一般来讲,Linux下的Apache绝大多数都是运行在Prefork模式下,这是出于稳定性的考虑。
 
所以总结下,LNMP下不需线程安全,Apache下为了稳定性的考虑,建议以多进程的方式运行(Prefork),这样也是不需要线程安全的。
 
最后一点,PHP安装为线程安全,会比非线程安全多占用一些CPU,并且可能会增加bug或者不稳定的问题,这才是重点,不然PHP就没必要设置这个选项了。

 


知识来源: www.2cto.com/Article/201504/388257.html

阅读:151456 | 评论:0 | 标签:无

想收藏或者和大家分享这篇好文章→复制链接地址

“关于PHP的线程安全模式(Thread Safety)”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

ANNOUNCE

ADS

标签云