導航:首頁 > 編程語言 > php線程安全linux

php線程安全linux

發布時間:2023-08-27 21:59:10

php線程安全與非線程安全的區別:如何選擇用哪一個

首先,linux下的PHP,沒有線程安全版和非線程安全版之分。從2000年10月20日發布的第一個Windows版的PHP3.0.17開始的都是線程安全的版本,直至5.2.1版本開始有Thread Safe(TS,線程安全)和None Thread Safe(NTS,非線程安全)之分。

因為,Linux/Unix系統採用的是多進程的工作方式,而Windows系統採用多線程的工作方式。即:Linux系統的任務調度基本單位是進程,Windows系統的任務調度基本單位是線程(本觀點來自自學與總結,不能保證百分之百正確)。

所以,在Windows系統的IIS下以CGI方式運行PHP會非常慢,這是由於CGI模式是建立在多進程的基礎之上的,而非多線程,且CGI模式對於每個HTTP請求都需要重新載入和卸載整個PHP環境,其消耗是巨大的。

於是,一般我們會把PHP配置成以ISAPI的方式來運行,ISAPI是多線程的方式,這樣就快多了。但存在一個問題,很多常用的PHP擴展是以 Linux/Unix的多進程思想來開發的,這些擴展在ISAPI的方式運行時就會出錯搞垮IIS。

為了兼顧IIS下PHP的效率和安全,微軟給出了FastCGI的解決方案。FastCGI可以讓PHP的進程重復利用,而不是每一個新的請求就重開一個進程。同時FastCGI也可以允許幾個進程同時執行。這樣既解決了CGI進程模式消耗太大的問題,又利用上了CGI進程模式不存在線程安全問題的優勢。

因此,如果是使用ISAPI的方式來運行PHP就必須用Thread Safe(TS,線程安全)的版本;而用FastCGI模式運行PHP的話就沒有必要用線程安全檢查了,用None Thread Safe(NTS,非線程安全)的版本能夠更好的提高效率。

名詞解析:

⑵ 如何判斷PHP 是線程安全還是非線程安全的

判斷PHP 是線程安全還是非線程安全:
1.通過phpinfo(); 查看其中的 Thread Safety 項,這個項目就是查看是否是線程安全,如果是:enabled,一般來說應該是ts版,否則是nts版。

2.命令行:php -i|grep -i thread
結果:Thread Safety => disabled 【disabled表示非線程安全】
如果沒有grep命令(windows),那就一個個找吧。

⑶ linux php怎麼添加多線程

開始用php寫後台服務一段時間了.也是在這樣的驅動下,不斷的學習php語法,體驗這一原來一直以為神秘且敬而遠之的神奇語言的魅力.最初看php多線程的資料是為了提高程序的處理能力,充分發揮linux多任務的優勢.不曾想多線程沒用成反到是帶來了一系列的意外收獲.讓之後的許多問題迎刃而解,不敢獨享特一一道來.
本文所講的東西是源自php的pcntl_fork函數.因為這個函數依賴操作系統fork的實現,所以本文所講的東西只適用於linux/unix.ok,那麼先看看這個函數的用法吧.php手冊上是這么說的:

<?php
$pid = pcntl_fork();
if ($pid == -1) {
die('could not fork');
} else if ($pid) {
// we are the parent
pcntl_wait($status); //Protect against Zombie children
} else {
// we are the chil

與php線程安全linux相關的資料

熱點內容
linux看文件系統 瀏覽:687
華為怎麼修改文件夾壁紙 瀏覽:32
web伺服器地址怎麼查 瀏覽:12
vmware12linux 瀏覽:677
電腦默認解壓地址 瀏覽:710
裝修時加密地暖 瀏覽:412
android開發輔助功能 瀏覽:248
linux程序設計第3版pdf 瀏覽:572
程序員會兩班倒嗎 瀏覽:745
php製作網易雲頁面 瀏覽:904
玫瑰原液可以和壓縮面膜一起用嗎 瀏覽:606
zabbix監控系統pdf 瀏覽:433
pdf的注釋顏色 瀏覽:543
pdf閱讀器下載下載 瀏覽:15
sip注冊到多個伺服器地址 瀏覽:900
linuxwifi掃描命令 瀏覽:420
德瑪西亞伺服器為什麼排隊 瀏覽:123
深入淺出linux設備驅動編程 瀏覽:850
pdf文檔怎麼做加密 瀏覽:817
為什麼小米app運動登錄就閃退 瀏覽:893