Sobes.tech
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.