Junior — Middle
Τι σημαίνει η λέξη-κλειδί volatile στον προγραμματισμό Java;
sobes.tech AI
Απάντηση από AI
Στη Java, η λέξη-κλειδί volatile χρησιμοποιείται για να δηλώσει μια μεταβλητή, η τιμή της οποίας μπορεί να αλλάξει από πολλαπλά νήματα ταυτόχρονα. Διασφαλίζει ότι η ανάγνωση και η εγγραφή αυτής της μεταβλητής πραγματοποιούνται άμεσα από τη βασική μνήμη, όχι από την cache του επεξεργαστή, διασφαλίζοντας την ορατότητα των αλλαγών μεταξύ των νημάτων.
Χωρίς volatile, ένα νήμα μπορεί να δει μια παρωχημένη τιμή της μεταβλητής, καθώς οι αλλαγές μπορεί να παραμείνουν στην τοπική cache ενός άλλου νήματος.
Παράδειγμα:
public class Counter {
private volatile int count = 0;
public void increment() {
count++; // μη ατομική λειτουργία, αλλά το volatile διασφαλίζει την ορατότητα
}
public int getCount() {
return count;
}
}
Σημαντικό: Το volatile δεν διασφαλίζει την ατομικότητα των λειτουργιών, επομένως για πολύπλοκες αλλαγές είναι καλύτερο να χρησιμοποιείτε συγχρονισμό ή ατομικές κλάσεις από το java.util.concurrent.atomic.