Reproduktion Sichtbarkeitsprobleme VL4

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.

Reproduktion Sichtbarkeitsprobleme VL4
Hallo liebes Forum,

ich versuche, um die Thematik besser zu verstehen, ein bisschen mit den Programmen aus der Vorlesung 4 herumzuspielen.
Ich habe das pathologische Beispiel (die Klasse NoVisibility) einfach mal übernommen, und versucht, den Fehlerfall zu beobachten. Das gelingt mir nicht. Das Programm läuft immer mit der erfolgreichen Ausgabe von 42.
Da ich zunächst vermutet habe, dass Eclipse mir ins Handwerk pfuscht, habe ich das ganze auch mal über die Konsole probiert, selbes Ergebnis.
Woran kann das liegen?
Wie schaffe ich es, dann überhaupt Datensynchronisationsprobleme zu beobachten?

Vielen Dank!


Hi,
das liegt daran, dass die main-Methode fertig ausgeführt wird,
bevor der 2. Thread überhaupt startet.
Das hier sollte hoffentlich funktionieren:

  public static void main(String[] args) {
    new Reader().start();
    try {
      Thread.sleep(5000);
    } catch (InterruptedException e) { }
    nr = 42;
    ready = true;
    System.out.println("done");
  }

Hm, jetzt wartet das Programm fünf Sekunden, aber sonst ändert sich leider nichts.


Ah und werf Thread.yield() raus,
das macht in dem Beispiel das Timing kaputt ;).


Super, jetzt funktioniert es, bzw. funktioniert nicht mehr.
Danke!