Imagem de fundo

Em um sistema de monitoramento em tempo real, várias...

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


A

assegura que, uma vez atribuído um valor, a variável não poderá ser modificada, estabelecendo um comportamento de imutabilidade.


B

assegura que a escrita em uma variável seja imediatamente visível para outras threads, sem garantir a atomicidade de operações compostas.


C

garante que operações compostas, como incremento (i++), sejam executadas como um passo único e indivisível por qualquer thread.


D

provê garantias simultâneas de visibilidade entre threads, e de atomicidade completa para todas as operações sobre a variável.


E

impede o acesso concorrente à variável, funcionando como um lock que permite a apenas uma thread obter acesso exclusivo por vez.