1. 程式人生 > >PHP的執行緒安全與非執行緒安全

PHP的執行緒安全與非執行緒安全

什麼是執行緒安全?

Thread Safety means that binary can work in a multithreaded webserver context, such as Apache 2 on Windows. Thread Safety works by creating a local storage copy in each thread, so that the data won’t collide with another thread.

執行緒安全就是能夠在多執行緒環境下正常工作。這取決於web server在處理並行訪問時是否用到多執行緒。

如何選擇?

PHP手冊給出答案:

If you choose to run PHP as a CGI binary, then you won’t need thread safety, because the binary is invoked at each request. For multithreaded webservers, such as IIS5 and IIS6, you should use the threaded version of PHP.

不論在什麼平臺、用什麼web server,只要是用cgi/fastcgi方式執行PHP,都用非線性安全。

這意味著nginx必然配合非執行緒安全的PHP,IIS則要用線性安全的PHP。Apache有兩種執行模式:如果用fastcgi模式,則配合非線性安全PHP,如果用LoadModule模式,則要用線性安全PHP。後者應該是大多數Apache使用者的選擇。

參考資料:

相關推薦

(轉)PHP執行安全執行安全的區別:如何選擇用哪一個?

PHP執行緒安全與非執行緒安全的區別:如何選擇用哪一個? 很多時候,我們在做PHP環境配置的時候,很多人都是直接去亂下載PHP版本的,但是他不清楚:從2000年10月20日釋出的第一個Windows版的PHP3.0.17開始的都是執行緒安全的版本,直至5.2.1版本開始有Thread Safe

PHP執行安全執行安全

什麼是執行緒安全? Thread Safety means that binary can work in a multithreaded webserver context, such as Apache 2 on Windows. Thread Sa

windows下php執行安全執行安全的版本選擇

Windows下的PHP版本分兩種:執行緒安全版本與非執行緒安全版本。 要論兩者的區別,詳細論說起來比較麻煩,從使用者的角度,記住什麼時候用哪種版本的區別就可以了吧: 1、windows + IIS + FastCGI :使用非執行緒安全版本。

PHP-執行安全執行安全版本的區別

Windows版的PHP從版本5.2.1開始有Thread Safe(執行緒安全)和None Thread Safe(NTS,非執行緒安全)之分,這兩者不同在於何處?到底應該用哪種?這裡做一個簡單的介紹。       從2000年10月20日釋出的第一個Windows版的P

PHP執行安全執行安全的區別

       轉載自:http://koda.iteye.com/blog/662034        Windows版的PHP從版本5.2.1開始有Thread Safe(執行緒安全)和None Thread Safe(NTS,非執行緒安全)之分,這兩者不同在於何處?到

執行安全執行安全

1、執行緒不共享資料 對同一資源,各個執行緒各自執行一遍,程式碼如下: package com.zzm.th01; /** * 執行緒不共享資料 * Created by ming on 2017/6/15. */ public class th04 extends Thr

JAVA中的執行安全執行安全

ArrayList和Vector有什麼區別?HashMap和HashTable有什麼區別?StringBuilder和StringBuffer有什麼區別?這些都是Java面試中常見的基礎問題。面對這樣的問題,回答是:ArrayList是非執行緒安全的,Vector是執行緒

JAVA中的執行安全執行安全理解

執行緒安全性不是一個非真即假的命題。 Vector 的方法都是同步的,並且 Vector 明確地設計為在多執行緒環境中工作。但是它的執行緒安全性是有限制的,即在某些方法之間有狀態依賴(類似地,如果在迭代過程中 Vector 被其他執行緒修改,那麼由 Vector.iterator() 返回的 itera

關於JVM記憶體(執行共享執行共享)

大多數 JVM 將記憶體區域劃分為 Method Area(Non-Heap)(方法區) ,Heap(堆) , Program Counter Register(程式計數器) , VM Stack(虛擬機器棧,也有翻譯成JAVA 方法棧的),Native M

執行時異常執行時異常的區別

java執行時異常是可能在java虛擬機器正常工作時丟擲的異常。 java提供了兩種異常機制。一種是執行時異常(RuntimeExepction),一種是檢查式異常(checked execption)(非執行時異常)。 檢查式異常:我們經常遇到的IO異常及sql異常就屬於

php執行安全版本執行安全版本

Windows下的PHP版本分兩種:執行緒安全版本與非執行緒安全版本。 要論兩者的區別,詳細論說起來比較麻煩,從使用者的角度,記住什麼時候用哪種版本的區別就可以了吧: 1、windows + IIS +  FastCGI :使用非執行緒安全版本。 解釋: 以FastCGI方

PHP版本中執行安全執行安全的區別

Windows版的PHP從版本5.2.1開始有Thread Safe(c之分,這兩者不同在於何處?到底應該用哪種?這裡做一個簡單的介紹。 從2000年10月20日釋出的第一個Windows版的PHP3.0.17開始的都是執行緒安全的版本,這是由於與Linux/Unix系統

java中執行安全執行安全的集合

  執行緒安全 非執行緒安全 Collection Vector ArrayList、LinkedList   H

Java執行安全執行開發

網際網路上充斥著對Java多執行緒程式設計的介紹,每篇文章都從不同的角度介紹並總結了該領域的內容。但大部分文章都沒有說明多執行緒的實現本質,沒能讓開發者真正“過癮”。 從Java的執行緒安全鼻祖內建鎖介紹開始,讓你瞭解內建鎖的實現邏輯和原理以及引發的效能問題,接著說明了Java多執行緒程式設計中鎖的存在是為

#Java&面試--控制多執行安全順序執行

Condition類的signal則是喚醒被Condition類使用await作用的那個執行緒,它會有針對性的喚醒執行緒,而不是隨機喚醒一個執行緒,以保證執行緒執行的順序: package com.yzh.job.test; import java.util.c

java 多執行 執行安全執行安全的集合物件

一、概念: 執行緒安全:就是當多執行緒訪問時,採用了加鎖的機制;即當一個執行緒訪問該類的某個資料時,會對這個資料進行保護,其他執行緒不能對其訪問,直到該執行緒讀取完之後,其他執行緒才可以使用。防止出現數據不一致或者資料被汙染的情況。 執行緒不安全:就是不提供資料訪問時的資

Java多執行執行安全非同步執行

多執行緒併發修改一個數據結構,很容易破壞這個資料結構,如散列表。鎖能夠保護共享資料結構,但選擇執行緒安全的實現更好更容易,如阻塞佇列就是執行緒安全的集合。 執行緒安全的集合 Vector和HashTable類提供了執行緒安全的動態陣列和散列表,而ArrayList和H

Java多執行執行安全執行安全的集合物件

轉載:https://blog.csdn.net/u011389474/article/details/54602812一、概念:執行緒安全:就是當多執行緒訪問時,採用了加鎖的機制;即當一個執行緒訪問該類的某個資料時,會對這個資料進行保護,其他執行緒不能對其訪問,直到該執行緒

【小家java】Java中主執行(父執行執行的通訊和聯絡

相關閱讀 【小家java】java5新特性(簡述十大新特性) 重要一躍 【小家java】java6新特性(簡述十大新特性) 雞肋升級 【小家java】java7新特性(簡述八大新特性) 不溫不火 【小家java】java8新特性(簡述十大新特性) 飽受讚譽 【小家java】java9

Java多執行——執行優先順序守護執行(Daemon Thread)

一、執行緒優先順序 每個執行緒都可以通過thread.setPriority()實現程序優先順序的設定。可設定的範圍在1-10之間,如果超過此範圍將丟擲異常throw new IllegalArgumentException()。每個執行緒的預設優先順序為5。 tips:即使將某個執行緒的優