摘要:從年月日發(fā)布的第一個(gè)版的開始的都是線程安全的版本,這是由于與系統(tǒng)是采用多進(jìn)程的工作方式不同的是系統(tǒng)是采用多線程的工作方式。
Windows版的PHP從版本5.2.1開始有Thread Safe(線程安全)和None Thread Safe(NTS,非線程安全)之分,這兩者不同在于何處?到底應(yīng)該用哪種?這里做一個(gè)簡單的介紹。
從2000年10月20日發(fā)布的第一個(gè)Windows版的PHP3.0.17開始的都是線程安全的版本,這是由于與Linux/Unix系統(tǒng)是采用多進(jìn)程的工作方式不同的是Windows系統(tǒng)是采用多線程的工作方式。如果在IIS下以CGI方式運(yùn)行PHP會非常慢,這是由于CGI模式是建立在多進(jìn)程的基礎(chǔ)之上的,而非多線程。一般我們會把PHP配置成以ISAPI的方式來運(yùn)行,ISAPI是多線程的方式,這樣就快多了。但存在一個(gè)問題,很多常用的PHP擴(kuò)展是以Linux/Unix的多進(jìn)程思想來開發(fā)的,這些擴(kuò)展在ISAPI的方式運(yùn)行時(shí)就會出錯(cuò)搞垮IIS。因此在IIS下CGI模式才是 PHP運(yùn)行的最安全方式,但CGI模式對于每個(gè)HTTP請求都需要重新加載和卸載整個(gè)PHP環(huán)境,其消耗是巨大的。
為了兼顧IIS下PHP的效率和安全,微軟給出了FastCGI的解決方案。FastCGI可以讓PHP的進(jìn)程重復(fù)利用而不是每一個(gè)新的請求就重開一個(gè)進(jìn)程。同時(shí)FastCGI也可以允許幾個(gè)進(jìn)程同時(shí)執(zhí)行。這樣既解決了CGI進(jìn)程模式消耗太大的問題,又利用上了CGI進(jìn)程模式不存在線程安全問題的優(yōu)勢。
因此,如果是使用ISAPI的方式來運(yùn)行PHP就必須用Thread Safe(線程安全)的版本;而用FastCGI模式運(yùn)行PHP的話就沒有必要用線程安全檢查了,用None Thread Safe(NTS,非線程安全)的版本能夠更好的提高效率。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/21063.html
摘要:指,即線程安全,一般在以方式加載的時(shí)候選擇這個(gè)版本。具體從年月日發(fā)布的第一個(gè)版的開始的都是線程安全的版本,這是由于與系統(tǒng)是采用多進(jìn)程的工作方式不同的是系統(tǒng)是采用多線程的工作方式。 TS指Thread Safety,即線程安全,一般在IIS以ISAPI方式加載的時(shí)候選擇這個(gè)版本。NTS即None-Thread Safe,一般以fast cgi方式運(yùn)行的時(shí)候選擇這個(gè)版本,具有更好的性能。 ...
摘要:共享數(shù)據(jù)使線程之間的通信比進(jìn)程之間的通信更有效。并發(fā)模型和的區(qū)別說明的作用是啟動一個(gè)新線程操作系統(tǒng)級別,有一個(gè)方法啟動新線程,新線程會執(zhí)行相應(yīng)的方法。單獨(dú)調(diào)用會在當(dāng)前線程中執(zhí)行并不會啟動新線程創(chuàng)建一個(gè)線程即可但是這個(gè)線程沒有執(zhí)行任何代碼段。 tutorials site 并發(fā)Concurrency發(fā)展的歷史 單CPU,一次只能運(yùn)行一個(gè)程序 -- 多任務(wù),一次同時(shí)運(yùn)行多個(gè)任...
摘要:中專門為解決線程安全的問題抽象出了一個(gè)線程安全資源管理器,實(shí)現(xiàn)原理比較簡單既然共用資源這么困難那么就干脆不共用,各線程不再共享同一份全局變量,而是各復(fù)制一份,使用數(shù)據(jù)時(shí)各線程各取自己的副本,互不干擾。 1.線程安全資源管理器 PHP的SAPI多數(shù)是單線程環(huán)境,比如cli、fpm、cgi,每個(gè)進(jìn)程只啟動一個(gè)主線程,這種模式下是不存在線程安全問題的,但是也有多線程的環(huán)境,比如Apache,...
摘要:如果現(xiàn)有子進(jìn)程中的線程總數(shù)不能滿足負(fù)載,控制進(jìn)程將派生新的子進(jìn)程。為解決線程的并發(fā)問題,引入了線程安全資源管理器。的全拼,用來存放各個(gè)線程的鏈表。 PHP 進(jìn)階之路 - 零基礎(chǔ)構(gòu)建自己的服務(wù)治理框架(上) PHP 進(jìn)階之路 - 零基礎(chǔ)構(gòu)建自己的服務(wù)治理框架(下) PHP 進(jìn)階之路 - 億級 pv 網(wǎng)站架構(gòu)的技術(shù)細(xì)節(jié)與套路 PHP 進(jìn)階之路 - 億級 pv 網(wǎng)站架構(gòu)實(shí)戰(zhàn)之性能壓榨 注...
摘要:前往下載,選擇版本。在目錄下新建鏈接數(shù)據(jù)庫成功鏈接數(shù)據(jù)庫失敗運(yùn)行之后輸出下面結(jié)果,說明可以解析文件且可以鏈接數(shù)據(jù)庫。 準(zhǔn)備所需安裝包 本次所選安裝版本是:nginx1.11.5,php7.1.0,mysql5.7.16,當(dāng)然可以根據(jù)喜歡的版本下載,為了方便管理,我在D盤下新建了wnmp文件夾,里面包含文件夾有mysql,php,nginx,www,www為存放項(xiàng)目文件夾。Nginx: ...
閱讀 1995·2023-04-26 01:59
閱讀 3296·2021-10-11 11:07
閱讀 3333·2021-09-22 15:43
閱讀 3414·2021-09-02 15:21
閱讀 2607·2021-09-01 10:49
閱讀 929·2019-08-29 15:15
閱讀 3121·2019-08-29 13:59
閱讀 2858·2019-08-26 13:36