Singleton Pattern endast en instans skapas i Multi Threading

medan du använder singleton mönster, Endast en instans skapas i multi threading?

Använda threadsafe singleton klass kommer att garantera att endast en instans skapas.

offentliga slutna klass Singleton
{
privata statisk Singleton singleton = null;
privata statisk readonly objekt singletonLock = new Object();

privata Singleton() {}
public static Singleton GetInstance()
{
lås (singletonLock)
{
om (singleton == null)
{
singleton = nya Singleton();
}
avkastning singleton ;
}
}
}

Frågan kommer upp först när skapandet av första instans.

Använda lås() kommer att ge oss den tråden säkert att undvika avrättningen av två trådar på en samma gång för att skapa instans.

Återigen är vi verifiera (singletonobject == null) så det kommer att garantera att endast en gång instans kommer att skapas.

dubbelkolla alternativet kommer att vara fullt bevis för vår klass.

Lämna ett svar

Du kan använda dessa HTML-taggar

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>