Sobes.tech
Junior — Middle

Puteți explica scopul și principiul de funcționare al cuvântului cheie volatile în contextul dezvoltării Android?

sobes.tech AI

Răspuns de la AI

Cuvântul cheie volatile în Java (și, implicit, în dezvoltarea Android) este utilizat pentru a asigura vizibilitatea modificărilor variabilei între fire.

Când o variabilă este declarată ca volatile, acest lucru garantează că:

  • Citirea variabilei se va face întotdeauna din memoria principală, nu din cache-ul firului.
  • Scrierea în variabilă devine imediat vizibilă pentru celelalte fire.

Acest lucru este important în mediile multi-thread Android pentru a evita situațiile în care un fir a modificat valoarea, dar altul continuă să vadă valoarea veche.

Exemplu:

private volatile boolean isRunning = true;

public void stop() {
    isRunning = false;
}

public void run() {
    while (isRunning) {
        // execută muncă
    }
}

Fără volatile, firul care rulează run() s-ar putea să nu vadă schimbarea în isRunning și să intre într-un ciclu infinit.

Totuși, volatile nu garantează atomitatea operațiilor complexe, pentru aceasta sunt necesare alte mecanisme de sincronizare.