Sobes.tech
Junior — Middle

Qual é o papel da palavra-chave volatile na gestão de multithreading em Java?

sobes.tech IA

Resposta da IA

A palavra-chave volatile em Java é usada para indicar uma variável cujo valor pode mudar em diferentes threads. Ela garante que a leitura e escrita dessa variável ocorram diretamente na memória principal, e não no cache do processador.

Isto é importante para a concorrência, para evitar que um thread veja um valor desatualizado da variável, alterado por outro thread.

No entanto, volatile não garante a atomicidade das operações (por exemplo, incremento), apenas a visibilidade das mudanças. Para operações complexas, deve-se usar sincronização ou classes atômicas de java.util.concurrent.atomic.

Exemplo:

volatile boolean flag = false;

// Thread 1
flag = true;

// Thread 2
if (flag) {
    // verá o valor atualizado garantidamente
}