mens du bruger singleton mønstret, kun én instans er oprettet i multi threading?
Brug threadsafe singleton klasse, vil sikre, at kun én instans er oprettet.
offentlige lukkede klasse Singleton
{
private static Singleton singleton = null;
private static skrivebeskyttet objekt singletonLock = nyt objekt();
privat Singleton() {}
public static Singleton GetInstance()
{
låse (singletonLock)
{
hvis (Singleton == null)
{
singleton = ny Singleton();
}
tilbage singleton ;
}
}
}
Spørgsmålet vil hæve kun, når oprettelsen af Første Instans.
Brug af lås() vil give os tråden sikkert at undgå udførelse af to tråde på samme tid at skabe eksempel.
Igen er vi verificere (singletonobject == null) så det vil garantere, at kun én gang eksempelvis vil blive oprettet.
dobbelt kontrol mulighed vil være fuld dokumentation for vores klasse.
Efterlad et svar