45it.com- 电脑学习从此开始!
diy硬件教程攒机经验装机配置
设计photoshop网页设计特效
系统注册表dos系统命令其它
存储主板显卡外设键鼠内存
维修显卡cpu内存打印机
winxpvistawin7unix/linux
cpu光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公excelwordpowerpointwps
编程数据库css脚本php
网络局域网qq服务器
软件网络系统图像安全
页面导航: 首页 > 电脑学院 > 服务器技术 >

关于php的线程安全模式(thread safety)

电脑软硬件应用网 45it.com 时间:2015-03-06 17:40 作者:佚名
php自身是不支持线程的,但是它在安装的时候,涉及到一个线程安全的问题,windows下提供了二种安装包,linux下编译安装提供了enable-maintainer-zts这个选项。 很多人一看到安全,就以为是好事,其实不然。 既然php

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就没必要设置这个选项了。

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识