如何判斷PHP 是執行緒安全還是非執行緒安全的

2022-04-03 19:28:38 字數 952 閱讀 6305

什麼是執行緒安全與非執行緒安全?

執行緒安全就是在多執行緒環境下也不會出現資料不一致,而非執行緒安全就有可能出現資料不一致的情況。

執行緒安全由於要確保資料的一致性,所以對資源的讀寫進行了控制,換句話說增加了系統開銷。所以在單執行緒環境中效率比非執行緒安全的效率要低些,但是如果執行緒間資料相關,需要保證讀寫順序,用執行緒安全模式

這個主要是針對web server 而言,在windows環境下,如果你使用的web server 是apchae 或者 iis 7以下版本,則應該選擇執行緒安全的安裝檔案,而如果你使用fast-cgi模式時,可以選擇非執行緒安全,因為 web sever 本身能保證執行緒安全。

當然還有二進位制檔案編譯時所使用的編譯器:vc9 (vs系列) vc6(gcc)

如樓上所言,是針對web server的,部分web server在處理應用請求的時候是用多執行緒而非多程序的方式處理,執行緒方式因為涉及到共享暫存器和記憶體,所以很容易出錯,這個時候程式就需要花一些額外的經歷去處理暫存器中的資料一致性,即保證執行緒安全。

所以是否採用執行緒安全主要看你的web server所採用的php請求處理方式,如果是多執行緒處理,那麼請選擇執行緒安全的,否則選擇非執行緒安全的,如樓上所說fast-cgi方式可選擇非執行緒安全的

先從字面意思上理解,none-thread safe就是非執行緒安全,在執行時不進行執行緒(thread)安全檢查;thread safe就是執行緒安全,執行時會進行執行緒(thread)安全檢查,以防止有新要求就啟動新執行緒的 cgi 執行方式耗盡系統資源。

如何判斷:

通過phpinfo(); 檢視其中的 thread safety 項,這個專案就是檢視是否是執行緒安全,如果是:enabled,一般來說應該是ts版,否則是nts版。

php是單執行緒還是多執行緒

php 從設計之初到流行起來都沒有出現明顯需要用多執行緒才能解決的需求。多執行緒並不總是比單執行緒優,多執行緒可能會引入其他問題 例如 兩個執行緒同時呼叫乙個類裡的同乙個方法時,可能出現死鎖的情況 你可以這樣理解對應乙個客戶的乙個頁面請求處理的php 是單執行緒處理的,這樣一來就可以自上而下的去編輯...

如何判斷機器是大端還是小端

這是一篇沒多少新意的文章,對big endian和little endian熟悉的人沒必要看,免得浪費時間。1 概念 所謂大端小端,指的是對於多位元組的資料型別 比如,int 在記憶體中存放的位元組順序。小端是指低位址的位元組存放的是資料的低位,高位址位元組存放的是資料的高位。大端是指低位址位元組存...

Android 如何判斷CPU是32位還是64位

可以利用三種方式來判斷cpu是32位還是64位 1.讀取android 的system property ro.product.cpu.abilist64 來判斷 2.讀取 proc cpuinfo 檔案的第一行來判斷 3.讀取libc.so檔案的elf頭部e indent陣列,根據陣列第e ind...