pri použití vzoru Singleton, len jedna inštancia je vytvorená vo viac závitov?
Použitie threadsafe Singleton triedy zaručí, že iba jedna inštancia je vytvorená.
public class Singleton uzavreté
{
private static Singleton Singleton = null;
private static readonly objekt singletonLock = nový objekt();
súkromné Singleton() {}
public static Singleton GetInstance()
{
zamknúť (singletonLock)
{
ak (Singleton == null)
{
Singleton = new Singleton();
}
návrat Singleton ;
}
}
}
Problém bude zvyšovať iba pri založení prvého stupňa.
Použitie zámku() poskytne nám vlákno bezpečné, aby sa zabránilo popravu dvoch vlákien v súčasne vytvoriť inštanciu.
Opäť sme sa overenie (singletonobject == null) tak to bude zaručené, že len raz inštancie sa vytvorí.
dvojaký kontrola voľba bude plný dôkaz našej triedy.
Required