O'Reilly logo

Entwurfsmuster von Kopf bis Fubß by Bert Bates, Kathy Sierra, Elisaebth Freeman, Eric Freeman

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

5.8. Mit Multithreading klarkommen

Unsere Multithreading-Probleme lassen sich schon fast trivial beheben, indem getInstanz() zu einer synchronisierten Methode gemacht wird:

public class Singleton {
  private static Singleton einzigeInstanz;

  // weitere nützliche Instanzvariablen

  private Singleton() {}

  public static synchronized Singleton getInstanz() {
    if (einzigeInstanz == null) {
      einzigeInstanz = new Singleton();
    }
    return einzigeInstanz;
  }

  // weitere nützliche Methoden
}

Indem wir getInstanz() das Schlüsselwort synchronized hinzufügen, erzwingen wir, dass jeder Thread wartet, bis er an der Reihe ist, bevor er in die Methode eintritt. Das bedeutet, dass zwei Threads die Methode nicht gleichzeitig betreten können.

Ich stimme zu, dass dieses das ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required