Singleton Pattern Tanging Isang halimbawa ay Nilikha sa Multi threading

habang ginagamit ang walang pareho pattern, lamang ng isang halimbawa ay nilikha sa multi threading?

Paggamit ng threadsafe walang pareho klase ay ginagarantiya na halimbawa lamang ng isang nilikha.

pampublikong selyadong klase Singleton
{
pribadong static Singleton walang pareho = null;
pribadong static na readonly sa bagay na singletonLock = bagong object();

pribadong Singleton() {}
pampublikong static na Singleton GetInstance()
{
ikandado (singletonLock)
{
kung (walang pareho == null)
{
walang pareho = bagong Singleton();
}
return walang pareho ;
}
}
}

Isyu itataas lamang kapag ang paglikha ng unang pagkakataon.

Gamit ang lock() ay magbibigay sa amin ang thread na ligtas upang maiwasan ang pagpapatupad ng dalawang mga thread sa isang sabay-sabay upang lumikha ng Halimbawa.

Muli ay bine-verify namin ang (singletonobject == null) kaya ito ay ginagarantiya na lamang ng isang beses halimbawa ay lilikhain.

double check pagpipilian ay puno na patunay para sa aming mga klase.

Mag-iwan ng isang Sumagot

Maaari mong gamitin ang mga tag na HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>