Determinar ttl de uma THREAD

pessoal,

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?

valeu!!!

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).

bom, nao sou muito familiarizado com o comportamento das thread no java, mas acho q isso faz oq vc quer:

public class Classe implements Runnable
{
	private int i = 0;

	public Classe()
	{
		Timer temporizador = new Timer();
		Thread thread = new Thread(this);
		CancelaTarefa cancela = new CancelaTarefa(thread);
		int espera = 10000;

		thread.start();
		temporizador.schedule(cancela, espera);

		try
		{
			thread.join();
		}
		catch (InterruptedException e)
		{
			// ñ se preocupe com essa exceção,
			// ela deverá ocorrer propositalmente
		}

		System.out.println("i: " + i);
	}

	public void run()
	{
		for (i = 0; true; i++) {}
	}

	public static void main(String args[])
	{
		new Classe();
	}

	private class CancelaTafera extends TimerTarsk
	{
		private Thread thread;

		public CancelaTarefa(Thread thread)
		{
			this.thread = thread;
		}

		public run()
		{
			thread.interrupt();
		}
	}
}

se nao der certo, pelo menos tenta aproveitar a ideia hehehe, acho q o caminho é ± esse

flw, t+