իսկ օգտագործելով SINGLETON օրինակին, միայն մեկ օրինակ, որը ստեղծվել է բազմաբնակարան threading?
Օգտագործելով threadsafe SINGLETON դաս չի երաշխավորում, որ միայն մեկ օրինակ է ստեղծվել.
հասարակական կնքված կարգի Singleton
{
մասնավոր ստատիկ Singleton singleton = առ;
մասնավոր ստատիկ readonly օբյեկտ singletonLock = նոր օբյեկտ();
մասնավոր Singleton() {}
հասարակական ստատիկ Singleton getInstance()
{
կողպեք (singletonLock)
{
եթե (Singleton առ ==)
{
singleton = new Singleton();
}
վերադարձը Singleton ;
}
}
}
Issue կբարձրացնի միայն այն ժամանակ, երբ ստեղծումը առաջին ատյանի.
Օգտագործելով փական() կապահովի մեզ շարանը անվտանգ խուսափել մահապատժից երկու threads մի միեւնույն ժամանակ ստեղծելու դեպք.
Կրկին մենք հաստատող (singletonobject առ ==) այնպես որ, չի երաշխավորում, որ միայն մեկ անգամ ատյանը կստեղծվի.
Կրկնակի ստուգում տարբերակը կլինի լիարժեք ապացույցն է մեր դասարանում.
Թողնել Պատասխանել