

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
Em um sistema de monitoramento em tempo real, várias threads trabalham em paralelo: algumas coletam dados de sensores, enquanto outra thread central precisa verificar constantemente uma variável booleana denominada ativo, para decidir se deve continuar o processamento ou encerrar a execução. Para evitar que uma thread leia um valor desatualizado em cache da CPU, o desenvolvedor declarou essa variável como volatile.
No contexto do Java Memory Model, é possível afirmar que a palavra-chave volatile
assegura que, uma vez atribuído um valor, a variável não poderá ser modificada, estabelecendo um comportamento de imutabilidade.
assegura que a escrita em uma variável seja imediatamente visível para outras threads, sem garantir a atomicidade de operações compostas.
garante que operações compostas, como incremento (i++), sejam executadas como um passo único e indivisível por qualquer thread.
provê garantias simultâneas de visibilidade entre threads, e de atomicidade completa para todas as operações sobre a variável.
impede o acesso concorrente à variável, funcionando como um lock que permite a apenas uma thread obter acesso exclusivo por vez.