como faço pra determinar o tempo de vida de uma thread?
por exemplo: tenho um servidor UDP que espera 2 mensagens sequenciais (tive que dividi-los por que era um BufferedImage muito grande) ou seja… quando o servidor recebe essas duas mensagens ele as junta e assim eu consigo recuperar o meu BufferedImage. Bom, detalhes da implementação não interessa… quero saber se é possível determinar o tempo de vida de uma thread… ou seja… quero que se ela não tenha acabado em 10s, por exemplo, seja força-do seu FIM.
alg sabe?
Veja se você pode criar uma thread auxiliar (talvez com java.util.Timer) que depois de 10 segundos joga uma InterruptedException. Na sua thread, veja se InterruptedException realmente consegue interromper o processo de leitura. Pode ser que funcione (no Unix/Linux) mas não funcione (talvez no Windows).
quikkoo
bom, nao sou muito familiarizado com o comportamento das thread no java, mas acho q isso faz oq vc quer:
publicclassClasseimplementsRunnable{privateinti=0;publicClasse(){Timertemporizador=newTimer();Threadthread=newThread(this);CancelaTarefacancela=newCancelaTarefa(thread);intespera=10000;thread.start();temporizador.schedule(cancela,espera);try{thread.join();}catch(InterruptedExceptione){// ñ se preocupe com essa exceção,// ela deverá ocorrer propositalmente}System.out.println("i: "+i);}publicvoidrun(){for(i=0;true;i++){}}publicstaticvoidmain(Stringargs[]){newClasse();}privateclassCancelaTaferaextendsTimerTarsk{privateThreadthread;publicCancelaTarefa(Threadthread){this.thread=thread;}publicrun(){thread.interrupt();}}}
se nao der certo, pelo menos tenta aproveitar a ideia hehehe, acho q o caminho é ± esse