Java synchronisieren im singleton-Muster

Funktioniert das synchronisieren Schlüsselwort angewendet werden müssen, um jede Methode einer Klasse, die das singleton-Muster wie dieses?

public class Singleton {

  private Singleton(){}

  public synchronized static Singleton getInstance()
    {   
        if(instance == null)
            instance = new Singleton ();

        return instance;
    }

  public void DoA(){
  }
}

Seit Singletons nicht verfügbar, einen öffentlichen Konstruktor und die getInstance () - Methode synchronisiert wird, braucht man nicht zu synchronisieren Methode DoA und anderen öffentlichen Methoden, die das Singleton-Klasse.

Ist diese Argumentation korrekt?

  • De Allgemeine Synchronisations-hängt davon ab, ob Sie Zugriff auf die freigegebenen Daten in der Methode.
  • Dies sollte Ihre Frage beantworten
  • Ich glaube nicht, Wenn getInstance synchronisiert. das bedeutet nicht, dass die DoA-sync. zu.
  • Wenn Sie mutieren, shareable state auf die DoA-Methode, dann ja, es kann noch muss Synchronisierung. Was macht die Methode tun ?
  • dies ist nichts zu tun, dass man ein singleton
InformationsquelleAutor Klaus Nji | 2013-04-10
Schreibe einen Kommentar