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