Junior — Middle
Pode explicar a finalidade e o funcionamento da palavra-chave volatile no contexto do desenvolvimento Android?
sobes.tech IA
Resposta da IA
A palavra-chave volatile em Java (e, por extensão, no desenvolvimento Android) é usada para garantir a visibilidade das alterações de uma variável entre threads.
Quando uma variável é declarada como volatile, isso garante que:
- A leitura da variável sempre ocorrerá a partir da memória principal, e não do cache do thread.
- A escrita na variável torna-se imediatamente visível para outros threads.
Isto é importante em ambientes multithread no Android para evitar situações em que um thread alterou o valor, mas outro continua a ver o valor antigo.
Exemplo:
private volatile boolean isRunning = true;
public void stop() {
isRunning = false;
}
public void run() {
while (isRunning) {
// realizar trabalho
}
}
Sem volatile, o thread que executa run() pode não detectar a alteração em isRunning e entrar num ciclo infinito.
No entanto, volatile não garante a atomicidade de operações complexas, para isso, são necessários outros mecanismos de sincronização.