Avatar ·

Para que serve a palavra-chave volatile em Java? Explique com exemplos

Olá a todos! Sou um desenvolvedor Java iniciante e recentemente tenho estudado ativamente multithreading. Me deparei com a palavra-chave `volatile`, mas não entendo completamente para que ela serve e quando usá-la. Escrevi um pequeno código onde uma thread altera a flag `running` e outra thread a verifica em um loop. Sem `volatile`, o programa às vezes funciona incorretamente — a segunda thread não vê a alteração e continua executando. Aqui está meu código: ```java public class TestVolatile { private static boolean running = true; public static void main(String[] args) throws InterruptedException { Thread worker = new Thread(() -> { while (running) { // fazendo algo } System.out.println("Worker parado"); }); worker.star