dok koristite singleton uzorak, samo jedan primjer je izrađen u više navoja?
Korištenje threadsafe Singleton klase će jamčiti da je samo jedan primjer je stvorio.
javni zatvoreni klasa Singleton
{
Privatni statički Singleton Singleton = null;
samo za čitanje privatnih statički objekt singletonLock = new objekt();
privatni Singleton() {}
public static Singleton GetInstance()
{
brava (singletonLock)
{
ako (Singleton == null)
{
Singleton = new Singleton();
}
povratak Singleton ;
}
}
}
Pitanje je samo kada će podići stvaranje prvog stupnja.
Korištenje zaključavanje() pružit će nam sigurno nit kako bi se izbjeglo izvršenje dvije niti u isto vrijeme stvoriti instancu.
Opet smo provjeru (singletonobject == null) tako da će jamčiti da samo jednom instanca će biti kreiran.
double check opcija će biti puna dokaz za naš razred.
Dopust jedan Odgovor