Verificar se uma thread acabou a execução

Alguém sabe como posso verificar se uma thread foi finalizada?
Estou usando java.io.Executors para criar um pool de thread. E gostaria de saber quando uma ou mais thread acabou de ser executada.

O que você pode fazer é verificar se ela ainda esta ativa. Use o metodo isAlive de Thread.
Flw

Fiz esta pergunta porque eu tenho que fazer um pequeno programa, que cria um pool de threads dentro destas threads tem um objeto que faz um socket para uma determinada máquina, e quando uma thread morrer, iria ser criada outra thread com o mesmo princípio.
Sendo que antes de montar o objeto que faz o soket, eu teria que ir no banco, pegar os dados e montar a url baseado nos dados do banco.
Como poderia fazer isso de uma maneira sincronizada, por exemplo, seto para pegar de 100 em 100 registros no banco e ai jogo para as threads que iram fazer as requisições, sendo que quando uma ou mais threads “morrerem” eu queria criar outras para fazer a mesma coisa, mas nunca passando de 100 threads por exemplo.
Alguém tem uma idéia para ajudar?

Usa a api de Concurrence (java 5+), la existe uma classe chamada Executors que te da a opcao de criar um executador de threads:

		ExecutorService e = Executors.newFixedThreadPool(100);
		for (int i = 0; i < 10000; i++) {
			e.execute(task);
		}

Nunca vai executar mais de 100 threads de uma soh vez…