2011-11-27 64 views
0

如果我創建一個單例類,那麼只能創建該類的一個對象,現在如果兩個請求試圖實例化相同的類,PHP是一個無共享架構,所以它不能爲這兩個請求創建單個對象,所以將它在服務另一個請求之前是否等待完成一個請求,或者它將同時爲另一個請求創建單獨的實例?Singleon如何在PHP中處理多個請求?

+1

請參閱:http://stackoverflow.com/questions/4595964/who-needs-singletons/4596323#4596323 – nickb

回答

3

每個請求都會啓動一個單獨的PHP實例,當腳本運行完畢後,它就會被拆除,所有東西都會被丟棄。這通常發生在幾分之一秒內。一個「單例」只意味着每個實例/腳本的運行只會創建一個實例。可以有許多並行的腳本,每個腳本都有自己的單例實例。單身是一個邏輯概念,不是任何事物強加的硬性限制。

+0

你的意思是,雖然多個請求可以在同一時間由服務器提供,但對於同樣的多個請求腳本將創建多個單例類的實例,對嗎?請告訴我,如果我沒有讓你正確 – Tarun

+0

是的,一個單例實例*每個*腳本實例。 – deceze

+0

感謝deceze,所以你:) – Tarun