Junior — Middle
Cosa si intende con la parola chiave volatile nella programmazione Java?
sobes.tech AI
Risposta dell'AI
In Java, la parola chiave volatile viene utilizzata per indicare una variabile il cui valore può essere modificato da più thread contemporaneamente. Garantisce che la lettura e la scrittura di questa variabile avvengano direttamente dalla memoria principale, non dalla cache della CPU, assicurando la visibilità delle modifiche tra thread.
Senza volatile, un thread può vedere un valore obsoleto della variabile, poiché le modifiche possono rimanere nella cache locale di un altro thread.
Esempio:
public class Counter {
private volatile int count = 0;
public void increment() {
count++; // operazione non atomica, ma volatile garantisce la visibilità
}
public int getCount() {
return count;
}
}
Importante: volatile non garantisce l'atomicità delle operazioni, quindi per modifiche complesse è meglio usare la sincronizzazione o le classi atomiche di java.util.concurrent.atomic.