欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP 線程安全與非線程安全版本的區(qū)別深入解析

 更新時間:2013年08月06日 09:51:51   作者:  
Windows版的PHP從版本5.2.1開始有Thread Safe(線程安全)和None Thread Safe(NTS,非線程安全)之分,這兩者不同在于何處?到底應該用哪種?這里做一個簡單的介紹

從2000年10月20日發(fā)布的第一個Windows版的PHP3.0.17開始的都是線程安全的版本,這是由于與Linux/Unix系統(tǒng)是采用多進程的工作方式不同的是Windows系統(tǒng)是采用多線程的工作方式。如果在IIS下以CGI方式運行PHP會非常慢,這是由于CGI模式是建立在多進程的基礎(chǔ)之上的,而非多線程。

一般我們會把PHP配置成以ISAPI的方式來運行,ISAPI是多線程的方式,這樣就快多了。但存在一個問題,很多常用的PHP擴展是以Linux/Unix的多進程思想來開發(fā)的,這些擴展在ISAPI的方式運行時就會出錯搞垮IIS。因此在IIS下CGI模式才是PHP運行的最安全方式,但CGI模式對于每個HTTP請求都需要重新加載和卸載整個PHP環(huán)境,其消耗是巨大的。

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

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

PHP官方http://php.net/上關(guān)于widows的版本有4個:VC9 x86 Non Thread Safe,VC9 x86 Thread Safe,VC6 x86 Non Thread Safe,VC6 x86 Thread Safe;那么有什么區(qū)別呢?

1.支持的服務器不同
VC9版本是針對IIS服務器的版本,沒有對APACHE的支持,而VC6版本對IIS和apache都提供了支持

VC6 是什么?
VC6 就是 legacy Visual Studio 6 compiler ,就是使用這個編譯器編譯的。
VC9 是什么?
VC9 就是 the Visual Studio 2008 compiler ,就是用微軟的 VS 編輯器編譯的。

那我們?nèi)绾芜x擇下載哪個版本的 PHP 呢?
如果你是在 windows 下使用 Apache+PHP 的,請選擇 VC6 版本;
如果你是在 windows 下使用 IIS+PHP 的,請選擇 VC9 版本;

2.運行方式的不同
PHP有2中運行方式:ISAPI和FastCGI。

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

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

對于apache服務器來說一般選擇isapi方式,而對于nginx服務器則選擇FastCGI方式。

相關(guān)文章

  • php使用unset()刪除數(shù)組中某個單元(鍵)的方法

    php使用unset()刪除數(shù)組中某個單元(鍵)的方法

    這篇文章主要介紹了php使用unset()刪除數(shù)組中某個單元(鍵)的方法,實例分析了unset函數(shù)在刪除數(shù)組單元時的使用技巧,需要的朋友可以參考下
    2015-02-02
  • 如何在PHP中操作臨時文件

    如何在PHP中操作臨時文件

    關(guān)于文件相關(guān)的操作,想必大家已經(jīng)非常了解了,在將來我們刷到手冊中相關(guān)的文件操作函數(shù)時也會進行詳細的講解。今天,我們先來了解一下在 PHP 中關(guān)于臨時文件相關(guān)的一些內(nèi)容。
    2021-05-05
  • php使用cookie保存用戶登錄的用戶名實例

    php使用cookie保存用戶登錄的用戶名實例

    這篇文章主要介紹了php使用cookie保存用戶登錄的用戶名實現(xiàn)方法,實例形式完整分析了cookie保存用戶登錄名的技巧,需要的朋友可以參考下
    2015-01-01
  • win7安裝php框架Yii的方法

    win7安裝php框架Yii的方法

    這篇文章主要介紹了win7安裝php框架Yii的方法,較為詳細的分析講述了Yii框架的下載、安裝及相應問題的解決方法,需要的朋友可以參考下
    2016-01-01
  • php中WebSocket的簡單使用示例詳解

    php中WebSocket的簡單使用示例詳解

    這篇文章主要為大家詳細介紹了php中WebSocket的簡單使用的相關(guān)知識,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-11-11
  • 約瑟夫環(huán)問題的PHP實現(xiàn) 使用PHP數(shù)組內(nèi)部指針操作函數(shù)

    約瑟夫環(huán)問題的PHP實現(xiàn) 使用PHP數(shù)組內(nèi)部指針操作函數(shù)

    約瑟夫環(huán)問題相信大家都已經(jīng)很熟悉了,一直想使用 PHP 來實現(xiàn)一下,琢磨了老半天的時間終于弄出來了,也許沒有網(wǎng)上的一些代碼實現(xiàn)的簡潔高效,但是畢竟是寫出來了~呵呵。
    2010-10-10
  • php實現(xiàn)推薦功能的簡單實例

    php實現(xiàn)推薦功能的簡單實例

    在本篇文章里小編給各位整理的是關(guān)于php如何實現(xiàn)推薦功能的相關(guān)實例內(nèi)容,有興趣的朋友們可以學習下。
    2019-09-09
  • PHP基于imagick擴展實現(xiàn)合成圖片的兩種方法【附imagick擴展下載】

    PHP基于imagick擴展實現(xiàn)合成圖片的兩種方法【附imagick擴展下載】

    這篇文章主要介紹了PHP基于imagick擴展實現(xiàn)合成圖片的兩種方法,結(jié)合實例形式分析了php使用imagick擴展進行圖片合并的具體操作方法與相關(guān)實現(xiàn)技巧,并附帶imagick擴展下載地址與配置方法,需要的朋友可以參考下
    2017-11-11
  • PHP開啟gzip頁面壓縮實例代碼

    PHP開啟gzip頁面壓縮實例代碼

    GZIP(GNU-ZIP)是一種壓縮技術(shù)。經(jīng)過GZIP壓縮后頁面大小可以變?yōu)樵瓉淼?0%甚至更小。這樣用戶瀏覽的時候就會感覺很爽很愉快!
    2010-03-03
  • PHP獲取ip對應地區(qū)和使用網(wǎng)絡類型的方法

    PHP獲取ip對應地區(qū)和使用網(wǎng)絡類型的方法

    這篇文章主要介紹了PHP獲取ip對應地區(qū)和使用網(wǎng)絡類型的方法,實例分析了php通過調(diào)用ip138數(shù)據(jù)庫獲取IP及網(wǎng)絡類型的技巧,需要的朋友可以參考下
    2015-03-03

最新評論