java / intermediate
Snippet
Speichersichtbarkeit mit dem volatile-Schlüsselwort
Das Schlüsselwort volatile stellt sicher, dass Änderungen an einer Variablen sofort für alle Threads sichtbar sind. Es verhindert, dass Threads die Variable lokal zwischenspeichern, sodass sie immer den neuesten Wert aus dem Hauptspeicher lesen.
snippet.java
1
2
3
4
5
6
7
8
9
public class SharedFlag {private volatile boolean active = true;public void stop() { active = false; }public void work() {while (active) { /* perform task */ }}}
Erklärung
1
private volatile boolean active
Stellt sicher, dass jeder Schreibvorgang auf 'active' für andere lesende Threads sichtbar ist, ohne explizite Synchronisation.
2
while (active)
Die Schleife wird korrekt beendet, selbst wenn ein anderer Thread stop() aufruft, da sie immer den Hauptspeicher prüft.