Junior — Middle
Kokiais atvejais turėtumėte naudoti volatile raktažodį Java?
sobes.tech AI
Atsakymas iš AI
Java kalbos volatile raktažodis naudojamas žymėti kintamąjį, kurio reikšmė gali būti keičiama kelių srautų vienu metu. Jis užtikrina, kad šios kintamojo skaitymas ir rašymas vyks tiesiogiai iš pagrindinės atminties, o ne iš srauto talpyklos, taip užtikrinant pokyčių matomumą tarp srautų.
volatile turėtų būti naudojamas tada, kai:
- Kintamasis gali būti keičiamas viename sraute ir skaitomas kitame.
- Nereikalaujama atominių sudėtingų operacijų (pvz., padidinimo), tik garantuojama reikšmės aktualumas.
- Norima išvengti sudėtingesnių sinchronizacijos mechanizmų (pvz.,
synchronized), kai pakanka užtikrinti pokyčių matomumą.
Pavyzdys:
class Flag {
private volatile boolean stop = false;
public void requestStop() {
stop = true;
}
public void run() {
while (!stop) {
// darbas
}
}
}
Čia, be volatile, srautas, vykdantis run(), gali nepastebėti stop pakeitimo.