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線程安全通過全局的global_id
,為每個全局變量做了唯一ID的區分.
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 是線程安全還是非線程安全:
1.通過phpinfo(); 查看其中的 Thread Safety 項,這個項目就是查看是否是線程安全,如果是:enabled,一般來說應該是ts版,否則是nts版。
2.命令行:php -i|grep -i thread
結果:Thread Safety = disabled 【disabled表示非線程安全】
如果沒有grep命令(windows),那就一個個找吧。
當前文章:php+線程安全+數據庫,php多線程
標題網址:http://vcdvsql.cn/article10/heogdo.html
成都網站建設公司_創新互聯,為您提供定制網站、建站公司、靜態網站、自適應網站、外貿網站建設、微信小程序
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯