Geração de relatórios com threads

Galera to querendo fazer um sisteminha web q gera relatórios mas como são mais de 50 não posso executalos todos ao mesmo tempo e nem apenas 1, entaum queria gerar por exemplo 5 relatórios ao mesmo tempo e a medida q um desses 5 acabasse um novo começaria a ser gerado alguém tem noção de como fazer isso???

Sim, use um FixedTheadPool.

Ele reserva um número fixo de threads para você, e você então pode submeter seus Runnables a ele. A medida que um runnable acaba, outro toma o lugar dele no pool. O código vai ficar mais ou menos assim (não testei):

[code]
List<Runnable> relatorios = getRelatorios(); //Pega os runnables que geram seus relatórios
ExecutorService threadPool = Executors.newFixedThreadPool(5);

for (Runnable relatorio : relatorios) {
threadPool.execute(relatorio);
}[/code]

Vlw vou testar!!!