Junior — Middle
Můžete vysvětlit účel a princip fungování klíčového slova volatile v kontextu vývoje pro Android?
sobes.tech AI
Odpověď od AI
Klíčové slovo volatile v jazyce Java (a tím i v vývoji pro Android) se používá k zajištění viditelnosti změn proměnné mezi vlákny.
Když je proměnná deklarována jako volatile, garantuje to, že:
- Čtení proměnné se vždy provádí z hlavní paměti, nikoli z cache vlákna.
- Zápis do proměnné je okamžitě viditelný pro ostatní vlákna.
To je důležité v prostředí s více vlákny v Androidu, aby se předešlo situacím, kdy jedno vlákno změnilo hodnotu, ale jiné stále vidí starou.
Příklad:
private volatile boolean isRunning = true;
public void stop() {
isRunning = false;
}
public void run() {
while (isRunning) {
// vykonávat práci
}
}
Bez volatile může vlákno, které provádí run(), nevidět změnu isRunning a vstoupit do nekonečné smyčky.
Nicméně volatile nezaručuje atomaritu složitých operací, pro které jsou potřeba jiné mechanismy synchronizace.