Dum uzanta la singleton skemo, Nur unu okazo estas kreita en multi surfadeniganta?
Uzanta threadsafe singleton klaso garantios ke nur unu okazo estas kreita.
Publika hermetika klaso Singleton
{
Privata senmova Singleton singleton = null;
Privata senmova readonly objekto singletonLock = nova objekto();
Privata Singleton() {}
Publika senmova Singleton GetInstance()
{
Seruro (SingletonLock)
{
Se (Singleton == null)
{
Singleton = nova Singleton();
}
Revena singleton ;
}
}
}
Afero levos nur kiam la kreon de unua okazo.
Uzanta seruron() Provizos nin la fadena monŝranko eviti ekzekuton de du fadenoj ĉe sama tempo krei okazon.
Denove ni estas konfirmantaj la (Singletonobject == null) Do ĝi garantios ke nur unufoje okazo estos kreita.
Duobla kontrola elekto estos plena pruvo por nia klaso.
Lasi Respondon