Oi gente,
estou tentando fazer operação e esperar até 5 minutos, são operações de rede.
O que eu quero basicamente é, executar um método, e se em 5 minutos não finalizar, será encerrado por timeout.
Classe teste que dispara execução:
OperacaoRede or = new OperacaoRede();
Thread t1 = new Thread(or);
t1.start();
try {
// 5 minutos para timeout
t1.sleep(5*60*1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
t1.stop();
Classe que realiza a operação
public class OperacaoRede implements Runnable {
public void run() {
while(condicao) {
// executa operação de rede que pode demorar muito
}
}
}
Nesse caso, como a thread está sleeping 5 minutos, mesmo que minha execução(método run) termine
em 2 minutos, a thread ficara dormindo mais 3 minutos até chegar no stop.
Como faço pra matar a thread de imediato que sair do run?
Se alguém tiver outra sugestão de implementação, o que eu preciso é executar um método
que dure até 5 minutos, ou seja, um tempo de timeout.
