我在PHP應用程序中使用單例設計模式來創建數據庫連接並選擇數據庫。我在應用程序中多次使用這個實例進行CRUD操作。PHP中的單例設計
如果我的應用程序正在多線程上訪問數據庫,比如獲取不可靠的結果,是否有任何問題?
每個會話或所有線程創建的實例?
我在PHP應用程序中使用單例設計模式來創建數據庫連接並選擇數據庫。我在應用程序中多次使用這個實例進行CRUD操作。PHP中的單例設計
如果我的應用程序正在多線程上訪問數據庫,比如獲取不可靠的結果,是否有任何問題?
每個會話或所有線程創建的實例?
PHP中沒有線程。每個請求都從頭開始;對象和資源不共享。
除非你有一些奇怪的frankenstein設置,所有由php處理的請求都是獨立的,不會共享任何內容。 因此,單例實例是每個請求(我認爲這就是你所調用的線程)。
所以,你不應該擔心用戶的接收東西的目的是爲用戶B.
+1爲frankenstein意識(雖然無線程的回答是正確的) – rdlowrey
Iam思維線程是用戶,而不是請求 –
如果單例實例是每個請求,爲什麼我們create.pls告訴我 –
PHP是單線程的。每次執行PHP腳本時,都會從頭開始。您在腳本中創建的對象每次都會重新創建。
多線程不應該有任何問題,因爲PHP不是多線程的。
他沒有問如何實現一個單身人士。 – middus
我沒有解釋如何實現一個Singleton,文章解釋了一個關於Multithreaded Singleton的問題,我發現這個問題意味着OP。 – CloudyMarble
這篇文章被稱爲「在C#中實現Singleton」,並且i.a.使用php甚至沒有的功能(lock等)解釋了多線程單例。除了'singleton'和'thread'之外,這與OP的問題沒有任何關係。 – middus
PHP不是多線程的。哦,單身人士是邪惡的;-) – JRL
單身人士在PHP中沒有用處。 – NikiC
@NikiC我經常使用它們來避免'$ _GLOBALS'。 – Ross