podczas korzystania wzorzec Singleton, tylko jedna instancja jest tworzona w wielu wątków?
Korzystanie threadsafe singleton klasy gwarantuje, że tylko jedna instancja jest tworzona.
publicznych klasa zapieczętowana Singleton
{
private static Singleton Singleton = null;
private static readonly obiekt singletonLock = new Object();
prywatnych Singleton() {}
public static Singleton GetInstance()
{
zablokować (singletonLock)
{
jeśli (Singleton == null)
{
Singleton = new Singleton();
}
powrót singleton ;
}
}
}
Kwestia ta będzie podnieść tylko wtedy, gdy powstanie pierwszej instancji.
Korzystanie z blokady() zapewni nam bezpieczeństwo wątków w celu uniknięcia egzekucji dwóch wątków w tym samym czasie tworzenia instancji.
Znowu jesteśmy weryfikacji (singletonobject == null) więc będzie gwarantować, że tylko raz instancja zostanie utworzona.
podwójna opcja wyboru będzie pełen dowodem na naszej klasie.
Leave a Reply