Wie wir für die synchrone Operation beim Erstellen von Singleton-Klasse wissen, machen wir ganze Methode als synchronisiert oder nur Block von Anweisungen, die für die Erstellung von Objekten als synchronisiert verantwortlich sind.Aber, unter diesen beiden Ansätze, die man besser ist und warum?Synchronisierte Methode oder Synchronisierter Block: Welche ist besser beim Schreiben der Singleton-Klasse in Java?
Ansatz 1
public static A getA(){
if (obj == null){
synchronized(Singleton.class) {
if (obj == null) {
obj = new Singleton();//instance will be created at request time
}
}
}
return obj;
}
Ansatz 2
public synchronized static A getA(){
if (obj == null){
obj = new Singleton();//instance will be created at request time
}
return obj;
}
es keine Rolle spielt, weil Singletons schlecht sind sowieso –
@SleimanJneidi Einfach nur neugierig, warum Singletons schlecht sind? –
ya ich weiß das, aber, könnten Sie mir bitte erklären, welcher Ansatz unter diesen beiden besser ist? –