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%
------分隔線----------------------------
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
評價:
表情:
驗證碼:點擊我更換圖片
推薦知識
法甲球队有哪些