Junior — Middle
Mida tähendab võtmesõna volatile Java programmeerimises?
sobes.tech AI
Vastus AI-lt
Java keeles kasutatakse märksõna volatile selleks, et märkida muutuja, mille väärtus võib muutuda mitme niidi poolt samaaegselt. See tagab, et selle muutuja lugemine ja kirjutamine toimub otse peamises mälus, mitte protsessori vahemälus, mis tagab muudatuste nähtavuse niitide vahel.
Ilma volatile-ita võib üks niit näha vananenud väärtust muutujast, kuna muudatused võivad jääda teise niidi kohalikku vahemällu.
Näide:
public class Counter {
private volatile int count = 0;
public void increment() {
count++; // mitte-atomaarne operatsioon, kuid `volatile` tagab nähtavuse
}
public int getCount() {
return count;
}
}
Oluline: volatile ei taga operatsioonide atomilisust, seega on keerukamate muudatuste puhul parem kasutada sünkroniseerimist või java.util.concurrent.atomic paketi atomseid klasse.