Junior — Middle
Σε ποιες περιπτώσεις συνιστάται η χρήση της λέξης-κλειδιού volatile στη Java;
sobes.tech AI
Απάντηση από AI
Η λέξη-κλειδί volatile στη Java εφαρμόζεται σε μεταβλητές που μπορούν να αλλάξουν ταυτόχρονα από πολλά νήματα. Διασφαλίζει ότι:
- Η ανάγνωση της μεταβλητής θα γίνεται πάντα από τη βασική μνήμη, όχι από την cache του νήματος.
- Η εγγραφή στη μεταβλητή γίνεται άμεσα ορατή σε άλλα νήματα.
Συνιστάται η χρήση του volatile όταν:
- Η μεταβλητή χρησιμοποιείται για σημαίες ή καταστάσεις που διαβάζονται και γράφονται από διαφορετικά νήματα.
- Δεν απαιτείται πλήρης συγχρονισμός, αλλά πρέπει να διασφαλίζεται η ορατότητα των αλλαγών.
Παράδειγμα:
public class Flag {
private volatile boolean active = false;
public void activate() {
active = true; // η αλλαγή θα είναι άμεσα ορατή σε άλλα νήματα
}
public boolean isActive() {
return active; // πάντα η τρέχουσα τιμή
}
}
Σημαντικό: Το volatile δεν διασφαλίζει την ατομικότητα πολύπλοκων λειτουργιών, μόνο την ορατότητα των αλλαγών.