Flüchtig
volatile
-> synchronized
[Über]
volatile
besagt für einen Programmierer, dass der Wert immer aktuell sein wird. Das Problem ist, dass der Wert in verschiedenen Arten von Hardwarespeicher gespeichert werden kann. Es kann sich zum Beispiel um CPU-Register, CPU-Cache, RAM... handeln. PU-Register und CPU-Cache gehören zur CPU und können keine Daten gemeinsam nutzen, im Gegensatz zum RAM, der in einer Multithreading-Umgebung die Rettung ist.
volatile
Schlüsselwort besagt, dass eine Variable gelesen und geschrieben vom/zum RAM-Speicher direkt . Sie hat einen gewissen Rechenaufwand
Java 5
erweitert volatile
durch Unterstützung happens-before
[Über]
Ein Schreibvorgang in ein flüchtiges Feld erfolgt vor jedem nachfolgenden Lesevorgang für dieses Feld.
Read is after write
volatile
Stichwort heilt nicht a race condition
Situation, in der mehrere Threads schreiben. einige Werte gleichzeitig. Die Antwort lautet synchronized
Stichwort [Über]
Infolgedessen ist sie nur dann sicher, wenn eine Gewinde schreibt und andere lesen einfach die volatile
Wert