Junior — Middle
Was bedeutet das Schlüsselwort volatile in der Java-Programmierung?
sobes.tech KI
Antwort von AI
In Java wird das Schlüsselwort volatile verwendet, um eine Variable zu kennzeichnen, deren Wert von mehreren Threads gleichzeitig geändert werden kann. Es stellt sicher, dass das Lesen und Schreiben dieser Variablen direkt aus dem Hauptspeicher erfolgt, nicht aus dem CPU-Cache, was die Sichtbarkeit der Änderungen zwischen Threads gewährleistet.
Ohne volatile kann ein Thread einen veralteten Wert der Variablen sehen, da Änderungen im lokalen Cache eines anderen Threads verbleiben können.
Beispiel:
public class Counter {
private volatile int count = 0;
public void increment() {
count++; // Nicht-atomare Operation, aber volatile garantiert Sichtbarkeit
}
public int getCount() {
return count;
}
}
Wichtig: volatile garantiert nicht die Atomarität von Operationen, daher ist es bei komplexen Änderungen besser, Synchronisation oder atomare Klassen aus java.util.concurrent.atomic zu verwenden.