durante l'utilizzo del pattern Singleton, una sola istanza viene creata in multi threading?
Utilizzando threadsafe classe singleton garantirà che una sola istanza viene creata.
pubblica sigillato class Singleton
{
private static Singleton singleton = null;
private static readonly oggetto singletonLock = nuovo oggetto();
private Singleton() {}
public static Singleton GetInstance()
{
bloccare (singletonLock)
{
se (Singleton == null)
{
singleton = new Singleton();
}
torna singleton ;
}
}
}
Problema alzerà solo quando la creazione di primo grado.
Utilizzo di blocco() ci fornirà il filo di sicurezza per evitare l'esecuzione di due thread in un tempo stesso creare l'istanza.
Anche in questo caso stiamo verificando la (singletonobject == null) così sarà garantire che solo esempio una volta verrà creata.
opzione di doppio controllo sarà piena prova per la nostra classe.
Lascia un commento