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
}