Analise o seguinte programa em Java SE 11:
class Contador {
int valor = 0;
void incrementar() {
valor++;
}
}
public class Teste {
public static void main(String[] args) throws Exception {
Contador c = new Contador();
Thread t1 = new Thread(() -> {
for(int i = 0; i < 1000; i++)
c.incrementar();
});
Thread t2 = new Thread(() -> {
for(int i = 0; i < 1000; i++)
c.incrementar();
});
t1.start();
t2.start();
t1.join();
t2.join();
System.out.println(c.valor);
}
}
Considerando a execução concorrente das threads e o funcionamento da instrução valor++. E, ainda, que a JVM pode intercalar as operações das threads de forma imprevisível e que a operação de incremento (valor++) não é atômica na especificação Java, assinale a alternativa correta.