Fala galera!
Me deparei com uma situação que preciso contornar: Preciso definir um tempo máximo de execução de uma determinada Thread, caso depois deste tempo ela continue rodando quero interrompe-la e fazer alguns tratamentos de erro.
Eu implementei um código que funciona, porém é demasiadamente não otimizado! Como está mostrado abaixo:
[code]
outputGobbler = new StreamGobbler(proc.getInputStream(), “SAÍDA”);
long tempoInicial = System.currentTimeMillis();
outputGobbler.start();
while (outputGobbler.isAlive()) {
Thread.currentThread().sleep(1000);
if (System.currentTimeMillis() - tempoInicial >
Constantes.getTempoMaximoExecucao()) {
TRATAMENTO
}
}[/code]
StreamGobbler é uma classe que extende Thread.
Existe uma forma de colocar uma outra Thread para “dormir” por este tempo máximo e quando ela acordar ela testar se a outra thread está ativa e caso esteja, encerrá-la e fazer um tratamento de erro?
Isto é possível?
Desde já agradeço! Um grande abraço!