mensagem: System.out.println("catch na thread MAIN " + e.getMessage());
package br.com.alura.experimento;
import br.com.alura.experimento.TarefaPararServidor;
public class ServidorDeTeste {
private boolean estaRodando = false;
public static void main(String[] args) throws InterruptedException {
ServidorDeTeste servidor = new ServidorDeTeste();
servidor.rodar();
servidor.alterandoAtributo();
}
private void rodar() {
new Thread(new Runnable() {
public void run() {
try {
System.out.println("Servidor comecando, estaRodando=" + estaRodando);
while(!estaRodando) {}
if(estaRodando) {
throw new RuntimeException("Deu erro na thread ....");
}
System.out.println("Servidor rodadndo, estaRodando=" + estaRodando);
while(estaRodando) {}
System.out.println("Servidor terminando, estaRodando=" + estaRodando);
} catch (Exception e) {
System.out.println("catch na thread MAIN " + e.getMessage());
}
}
}).start();
}
public synchronized boolean estaRodando() {
return this.estaRodando;
}
public synchronized void parar() {
this.estaRodando = false;
}
public synchronized void ligar() {
this.estaRodando = true;
}
private void alterandoAtributo() throws InterruptedException {
Thread.sleep(1000);
System.out.println("Main alterando estaRodando=true");
this.ligar();;
Thread.sleep(5000);
System.out.println("Main alterando estaRodando=false");
this.parar();;
}
}