PHP非線程安全與線程安全版本的選擇技巧

轉自http://blog.csdn.net/shoyer/article/details/8182020

從PHP5.2.10版本開始(現在有PHP5.2.10和5.3兩個版本),有None-Thread Safe與Thread Safe兩種版本的可供選擇,這兩種版本有何不同,作爲使用者來說又應該如何選擇呢?下面聚友將爲您講述。

PHP5.2.10版本開始(現在有PHP5.2.10和5.3兩個版本)有None-Thread Safe與Thread Safe兩種版本的可供選擇這兩種版本有何不同,作爲使用者來說又應該如何選擇呢?下面聚友將爲您講述

先從字面意思上理解,None-Thread Safe就是非線程安全,在執行時不進行線程(thread)安全檢查;Thread Safe就是線程安全,執行時會進行線程(thread)安全檢查,以防止有新要求就啓動新線程的 CGI 執行方式耗盡系統資源

再來看PHP的兩種執行方式:ISAPI和FastCGI。FastCGI執行方式是以單一線程來執行操作,所以不需要進行線程的安全檢查,除去線程安全檢查的防護反而可以提高執行效率,所以,如果是以 FastCGI(無論搭配 IIS 6 或 IIS 7)執行 PHP ,都建議下載、執行 non-thread safe 的 PHP (PHP 的二進位檔有兩種包裝方式:msi 、zip ,請下載 zip 套件)。而線程安全檢查正是爲ISAPI方式的PHP準備的,因爲有許多php模塊都不是線程安全的,所以需要使用Thread Safe的PHP。

說到這裏,大家應該知道應該如何選擇哪個版本的PHP了。None-Thread Safe or Thread Safe,您會選擇哪個?

Windows下的PHP現在的版本已經是5.3.6,現在的Windows版本可以在PHP官方PHP For Windows(http://windows.php.net/download/)下載,下載的時候同版本有VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe等四個版本。那麼這些版本有什麼區別呢?

VC9的版本是用legacy VS 2008編譯的,VC6的版本是用legacy VS6編譯的。

如果你是在windows下使用IIS+PHP的話,你需要下載VC9的版本。
如果你是在windows下使用Apache+PHP的話,你需要下載VC6的版本。

Non Thread Safe是指非線程安全,Thread Safe則是指線程安全。

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

這樣一來,如何選擇您適用的PHP版本就迎刃而解了,去下載適合您系統的PHP吧。

    希望這篇PHP非線程安全與線程安全版本的選擇技巧的文章能夠對您有所幫助,如果您覺得這篇網站維護教程有用的話,別忘了推薦給您的朋友哦!如果您有好的經驗方法,不妨拿出來和大家一起分享:假如每個人都拿出一個經驗,那麼我們都將額外的獲取一堆他人的經驗。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章