Olá galera!
Estou tendo uma pequena dificuldade em um assunto específico à Threads: não consigo testar se uma thread está extrapolando determinado tempo. Estou implementando este código para descobrir se a Thread está demorando demais para executar, caso isto ocorra, quero finalizar esta thread. No momento estou usando este método:
Neste método quero testar se o outputGobbler ainda está em execução depois de determinado tempo.
private void testarTravamento() {
travou = false;
new Thread(new Runnable() {
public void run() {
try {
Thread.currentThread().sleep(Constantes.getTempoMaximoExecucao());
} catch (InterruptedException e) {
e.printStackTrace();
}
if (outputGobbler.isAlive()) {
travou = true;
proc.destroy();
String processo = args[2].substring(0, args[2].length() - 4);
String[] argsD = new String[] { "cmd", "/C", "tskill", processo};
Executador exec = new Executador(diretorio, argsD, null);
exec.executar();
}
}
}).start();
}
Porém não está funcionando! Creio que me confundi em algo.
Espero uma luz dos meus queridos amigos do GUJ!
Um grande abraço!