Beispiel Blatt 3 zu synchronized

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Beispiel Blatt 3 zu synchronized
Hallo,

ich hole gerade meinen PFP-Rückstand auf. Ich habe dafür das Beispiel vom Übungsblatt 3 angeschaut:

public class ClassSync {
  static int a = 0;
  private static synchronized int getNextNumber() {
      return a++;
  }
public static void main(String[] args) {
  System.out.println("Start.")
  for (int i = 0; i < 5; i++) {
    new Thread() {
      @Override
         public void run() {
            System.out.println("This is Thread" + getNextNumber() );
          }
    }.start();
  }
  System.out.println("End.")
 }
}

Als Ausgabe kommt bei mir:

Warum zählt das jetzt bis zur 8? Ich hätt erwartet, dass es von 0 bis 4 geht, und dann die Reihenfolge vielleicht durcheinander ist, aber wenn es doch nur 5 mal in der for-Schleife gestartet wird, warum zählt es dann bis 8?

NACHTRAG: Ja, ich habe es beim Abtippen übersetzt =D