PHP各種版本中TS和NTS是什么意思?有什么區(qū)別?

[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!

在PHP 開(kāi)發(fā)和生產(chǎn)環(huán)境搭建過(guò)程中,需要安裝PHP語(yǔ)言解析器。官方提供了2種類(lèi)型的版本,線程安全(TS)版和非線程安全(NTS)版,有時(shí)后我們開(kāi)發(fā)環(huán)境和實(shí)際生產(chǎn)的環(huán)境有所不同,因此也需要選擇安裝對(duì)應(yīng)的PHP版本。在此記錄下筆記,方便日后查看 ...

1、簡(jiǎn)介

TS:? ? TS(Thread-Safety)即線程安全,多線程訪問(wèn)時(shí),采用了加鎖機(jī)制,當(dāng)一個(gè)線程訪問(wèn)該類(lèi)的某個(gè)數(shù)據(jù)時(shí)進(jìn)行數(shù)據(jù)加鎖保護(hù),其他線程不能同時(shí)進(jìn)行訪問(wèn)該數(shù)據(jù),直到該線程讀取完畢,其他線程才可訪問(wèn)使用該數(shù)據(jù),好處是不會(huì)出現(xiàn)數(shù)據(jù)不一致或者數(shù)據(jù)污染的情況,但耗費(fèi)的時(shí)間要比 NTS 長(zhǎng)。

PHP以 ISAPI 方式(Apache 常用方式)加載的時(shí)候選擇TS版本。

NTS:? NTS(None-Thread Safe)即非線程安全,不提供數(shù)據(jù)訪問(wèn)保護(hù),有可能出現(xiàn)多個(gè)線程先后或同時(shí)操作同一數(shù)據(jù)的情況,容易造成數(shù)據(jù)錯(cuò)亂(即臟數(shù)據(jù)),一般操作的執(zhí)行時(shí)間要比 TS 短。

PHP以FAST-CGI方式加載運(yùn)行的時(shí)候選擇TNS版,具有更好的性能;

ISAPI:ISAPI(Internet Server Application Programming Interface), 通常是指被http服務(wù)器所加載,以服務(wù)器的模塊形式運(yùn)行,由微?軟提出,故只能在win平臺(tái)上運(yùn)行,如win下的apache,iis[用fast cgi 方式工作更穩(wěn)定],而linux上php?則以?Apache模塊(常用方式)或者php-fpm(該方式更適合于NGINX+PHP 運(yùn)行)的方式運(yùn)行。

CGI:cgi(Common Gateway Interface):HTTP服務(wù)器與客戶端機(jī)器上的程序進(jìn)行“交談”的一種工具,簡(jiǎn)而言之,cig就是一種?后臺(tái)語(yǔ)言,可以與服務(wù)器進(jìn)行通訊。此時(shí)的php是作為一個(gè)獨(dú)立的程序運(yùn)行的,特點(diǎn)就是耗費(fèi)內(nèi)存。

FAST CGI:fast cgi是一個(gè)常駐(long-live)型的CGI,它可以一直執(zhí)行著,只要激活后,不會(huì)每次都要花費(fèi)時(shí)間去fork一個(gè)新進(jìn)程。這種方式?是與語(yǔ)言無(wú)關(guān)的、可伸縮架構(gòu)的CGI開(kāi)放擴(kuò)展,其主要行為是將CGI解釋器進(jìn)程保持在內(nèi)存中并因此獲得較?高的性能。

FAST-CGI 是微軟為了解決 CGI 解釋器的不足而提出改進(jìn)方案。當(dāng)一個(gè)請(qǐng)求向 web server 發(fā)送請(qǐng)求時(shí),web server總會(huì)fork一個(gè)CGI解釋器進(jìn)程進(jìn)行處理這個(gè)請(qǐng)求,進(jìn)程處理完成之后將結(jié)果返回給web server,web server將結(jié)果返回并顯示出來(lái),進(jìn)程結(jié)束,當(dāng)用戶再次請(qǐng)求同一個(gè)頁(yè)面時(shí),web server又會(huì)fork一個(gè)新進(jìn)程進(jìn)行請(qǐng)求處理,這樣效率會(huì)比較低下(CGI被人詬病的主要原因)。而采用FAST-CGI 解釋器的 話,當(dāng)一個(gè)請(qǐng)求執(zhí)行完畢后不會(huì)注銷(xiāo)該進(jìn)程,而是將改進(jìn)程進(jìn)入休眠期,當(dāng)接收到新的請(qǐng)求時(shí),重新啟用改進(jìn)程進(jìn)行處理。FAST-CGI 較CGI 減少了進(jìn)程的重復(fù)創(chuàng)建的資源占用。

進(jìn)程與線程:一個(gè)進(jìn)程至少存在一個(gè)或多個(gè)線程。

2、選擇

通常win下 PHP + Apache 組合,以 ISAPI 的方式運(yùn)行。

而linux下通常分為2種:

Apache + PHP,PHP一般作為Apache 的模塊進(jìn)行運(yùn)行;

Nginx + PHP ,以 phpfast cgi的方式,即php-fpm的方式運(yùn)行,該方式對(duì)高并發(fā)、高負(fù)載有良好的性能體現(xiàn),因此很多網(wǎng)站采用該方式進(jìn)行環(huán)境的搭建。

Nginx 較Apache 的配置要少很多,因此人為出錯(cuò)的概率要少一點(diǎn),但也因此 Apache 的 穩(wěn)定性要比Nginx 高。

重點(diǎn)總結(jié):

以 ISAPI 方式運(yùn)行就用 TS 線程安全版

以 FAST-CGI 或 PHP-FPM 方式運(yùn)行就用NTS 非線程安全版

通常 Windows 下 Apache + PHP 選TS ,IIS(fast-cgi) + PHP 選TNS

通常Linux 下 Apache + PHP 選TS,Nginx + PHP 選TNS

問(wèn)題未解決?付費(fèi)解決問(wèn)題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信

所寫(xiě)所說(shuō),是心之所感,思之所悟,行之所得;文當(dāng)無(wú)敷衍,落筆求簡(jiǎn)潔。 以所舍,求所獲;有所依,方所成!

支付寶贊助
微信贊助

免責(zé)聲明,若由于商用引起版權(quán)糾紛,一切責(zé)任均由使用者承擔(dān)。

您必須遵守我們的協(xié)議,如您下載該資源,行為將被視為對(duì)《免責(zé)聲明》全部?jī)?nèi)容的認(rèn)可->聯(lián)系老梁投訴資源
LaoLiang.Net部分資源來(lái)自互聯(lián)網(wǎng)收集,僅供用于學(xué)習(xí)和交流,請(qǐng)勿用于商業(yè)用途。如有侵權(quán)、不妥之處,請(qǐng)聯(lián)系站長(zhǎng)并出示版權(quán)證明以便刪除。 敬請(qǐng)諒解! 侵權(quán)刪帖/違法舉報(bào)/投稿等事物聯(lián)系郵箱:service@laoliang.net
意在交流學(xué)習(xí),歡迎贊賞評(píng)論,如有謬誤,請(qǐng)聯(lián)系指正;轉(zhuǎn)載請(qǐng)注明出處: » PHP各種版本中TS和NTS是什么意思?有什么區(qū)別?

發(fā)表回復(fù)

本站承接,網(wǎng)站推廣(SEM,SEO);軟件安裝與調(diào)試;服務(wù)器或網(wǎng)絡(luò)推薦及配置;APP開(kāi)發(fā)與維護(hù);網(wǎng)站開(kāi)發(fā)修改及維護(hù); 各財(cái)務(wù)軟件安裝調(diào)試及注冊(cè)服務(wù)(金蝶,用友,管家婆,速達(dá),星宇等);同時(shí)也有客戶管理系統(tǒng),人力資源,超市POS,醫(yī)藥管理等;

立即查看 了解詳情