Tips und Hinweise
... zu folgenden Themen:
- Testprogramm
- Ausgangsbasis
- Vorgehen
- Originaldokumentation
Sie verwenden dasselbe Testprogramm wie beim Posten «Fäden». Alle Schnittstellen bleiben unverändert
und müssen auch gar nicht angetastet werden.
Die unten aufgeführten Klassen bilden eine Ausgangsbasis für diesen Posten. Wenn Sie keine eigene Lösung
für die vorangehenden Posten gefunden haben, können Sie diese Dateien übernehmen. Kopieren Sie sie
zuerst in Ihr Arbeitsverzeichnis; danach müssen Sie jeweils die ersten drei Buchstaben (THD) der
Dateinamen löschen.
Sie haben die vorhergehende Seite über die Synchronisation in Java gelesen und wissen, dass es prinzipiell
zwei Möglichkeiten zur Synchronisation gibt. Sie wissen von der Einführung her auch, wo das Problem liegt.
Sie können nun zwischen folgenden beiden Vorgehen wählen:
- Sie packen das Problem gleich bei der Wurzel und korrigieren unsere Implementation der Klasse
FCanvas. Sie können diese Klasse zu sich ins Arbeitsverzeichnis kopieren, wie Sie es mit den
Lösungsvorschlägen gemacht haben. Wenn Sie nun FCanvas kompilieren, wird der Interpreter beim
starten des Testprogrammes Ihre Klasse laden. Dies geschieht deshalb, weil Sie in Ihrer
CLASSPATH-Variable das aktuelle Verzeichnis (den Punkt . ) zuerst anführen. Sollten Sie mit Ihrer
Lösung nicht zufrieden sein, so können Sie einfach die Datei FCanvas.class aus Ihrem
Arbeitsverzeichnis löschen. Dann wird nämlich automatisch wieder die ursprüngliche (unsere
«fehlerhafte») Version aktiv.
- Sie beheben unseren Fehler, indem Sie ein Objekt sperren, das von den Klassen Mandelbrot und
Julia aus erreichbar ist (z.B. canvas). Versuchen Sie dabei den kritischen Abschnitt so eng wie
möglich einzukreisen, um dann nur diesen zu schützen.
Kritische Abschnitte - Synchronisation in Java - Tips und Hinweise - Lösungsmöglichkeit
OOP - Werkzeuge - Referenzen - Fäden - Synchronisation - Applets - Dokumentation
Werkstatt - Bibliographie