2013-04-18 56 views
2

Singleton設計模式並確保一個單一的對象引用或有對象的多於一個參考的同時實現單例模式任何機會/可能性,我想在多線程的情況下,有一個即使我們已經實現了單身模式,也有一個多一個對象的機會。需要一些澄清Singleton模式

請幫忙。

+1

這取決於執行 - 在一個破碎實現的情況下,機會是多線程的環境會引起問題。模式本身與它無關。 –

回答

0

Singleton模式確保了單個對象在在JVM上運行的應用程序創建的。即使在多線程環境中也是如此。如果不是,那不是Singleton或者至少編程不嚴的Singleton。

-1

當你有單獨的類,你不能創建該類的一個以上的對象。您可以在該對象上創建多個引用,但對象將相同。

2

Singleton模式是限制一個類的實例化到一個對象的設計模式。如果一個實例已經存在,它只是返回對該對象的引用。但是,在多線程環境中,可能會有兩個單獨的線程同時輸入getInstance(),請檢查該實例是否爲null,然後創建該類的兩個實例。因此,爲了防止它,你需要你的getInstance()作爲​​標記爲:

public static synchronized Singletone getInstance() { 
    if(instance == null){ 
     instance = new createInstance(); 
    } 
    return instance; 
} 

退房this後爲了更好的理解。