首頁  >  文章  >  後端開發  >  php ts和nts差別是什麼

php ts和nts差別是什麼

藏色散人
藏色散人原創
2020-07-27 10:02:164114瀏覽

php ts和nts的差別有:1、ts即執行緒安全,多執行緒存取時,採用了加鎖機制,而nts即非執行緒安全,就是不提供資料存取保護;2、php以ISAPI方式載入的時候選擇ts版本,而以fast cgi方式運作的時候選擇nts版本。

php ts和nts差別是什麼

推薦:《PHP教學

##php的TS與NTS的差異

ts(Thread-Safety)即執行緒安全,多執行緒存取時,採用了加鎖機制,當一個執行緒存取該類別的某個資料時,進行保護,其他執行緒不能進行存取直到該執行緒讀取完,其他執行緒才可使用。不會出現資料不一致或資料污染php以ISAPI方式載入的時候選擇這個版本.,php以ISAPI方式載入的時候選擇這個版本.

nts(None-Thread Safe)即非執行緒安全,就是不提供資料存取保護,有可能出現多個執行緒先後更改資料造成所得到的是髒資料php以fast cgi方式運行的時候選擇這個版本,具有更好的效能;

ISAPI(Internet Server Application Programming Interface), 通常是指被http伺服器所加載,以伺服器的模組形式運行,由微軟提出,故只能在win平台上運行,例如win下的apache,iis[據說用fast cgi 方式工作更穩定],而linux上php 則以Apache模組或php-fpm的方式運作。

cgi(Common Gateway Interface):HTTP伺服器與你的或其它機器上的程式進行「交談」的一種工具,說白了,cig就是一種後台語言,其可以和伺服器之間進行通訊。此時的php是作為一個獨立的程式運行的。特色就是耗費記憶體。

fast cgi.是一個常駐(long-live)型的CGI,它可以一直執行著,只要激活後,不會每次都要花費時間去fork.這種方式是與語言無關的、可伸縮架構的CGI開放擴展,其主要行為是將CGI解釋器進程保持在記憶體中並因此獲得較高的效能。

ISAPI執行方式是以DLL動態庫的形式使用,可以在被用戶請求後執行,在處理完一個用戶請求後不會馬上消失,所以需要進行線程安全檢查,這樣來提高程序的執行效率,所以如果是以ISAPI來執行PHP,建議選擇ThreadSafe版本。

而FastCGI執行方式是以單一執行緒來執行操作,所以不需要進行執行緒的安全檢查,除去執行緒安全檢查的防護反而可以提高執行效率,所以,如果是以FastCGI來執行PHP,建議選擇NonThread Safe版本。

透過phpinfo(); 查看其中的 Thread Safety 項,這個項目就是查看是否是執行緒安全,如果是:enabled,一般來說應該是ts版,否則是nts版。

以上是php ts和nts差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn