
Zitat von
Cymatoxa
Okay, dass AWT nicht threadsicher ist, weiß ich, aber bei Swing bin ich bisher vom Gegenteil ausgegangen.
A note on thread safety:
It may seem strange that such an important part of the Java platform is not thread safe. It turns out that any attempt to create a thread-safe GUI library faces some fundamental problems. For more on this issue, see the following entry in Graham Hamilton's blog:
MultiThreaded toolkits: A failed dream?

Zitat von
Cymatoxa
Aber wie kann ein boolean nicht threadsicher sein? Das ist doch nur ein einziges Bit.
Das hat mit threadsicher nichts zu tun. Ein Stück Code kann threadsicher sein oder nicht, aber kein Datentyp. Der Datentyp Zugriff kann höchstens atomar erfolgen oder auch nicht...

Zitat von
Cymatoxa
Und in meinem Programm hat nur ein Thread einen schreibenden Zurgiff darauf...
Deswegen gibt es in deinem Code auch kein Problem mit der Variablen und dem Zugriff darauf an sich.

Zitat von
Cymatoxa
Wie kommt es eigendlich, dass das Programm auf manchen PCs auch ohne volatile funktioniert? Liegt das am Prozessor?
Ja, z.B. Prozessor. Auf einem Single-Core Prozessor System hat der Prozessor die einzige Kopie einer Variablen, auf einem Multiple-Core / Multi-Prozessor System hat u.U. jeder Prozessor eine Kopie der Variablen. Deswegen muss man den Prozessor mit bestimmten Anweisungen zwingen immer auf die Speicherinformation direkt und nicht auf den (gecachten) lokalen Wert zuzugreifen, damit der Wert immer aktuell gehalten wird.

Zitat von
Cymatoxa
Java sollte doch eigendlich auf allen Geräten gleich arbeiten.
Es gibt auch in der Java Spezifikation "kann" und "darf" Bestimmungen. Ein Compiler bzw. der Bytecode-Interpreter oder JIT-Compiler kann, bzw. darf bestimmte Dinge (z.B. zur Optimierung) tun, welche letztendlich unter best. Umständen (bei unsauberer Programmierung) zu anderem Verhalten führen.
Er darf z.B. den Wert einer non-volatile Variablen cachen und muss ihn nicht immer aus dem Speicher laden.
Gruß
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.