Quem dispara essas threads pode dar um join() em todas elas. Esse join() fará o Java esperar até que a thread tenha terminado.
publicvoidenviaMensagem()throwsException{intntarefas=this.destino.length;intnthreads=5;intaux=0;ntarefas=((ntarefas/nthreads)+(ntarefas%nthreads));TrataTextotts[]=newTrataText[nThreads];for(inti=0;i<nThreads;i++){String[]saida=java.util.Arrays.copyOfRange(this.destino,aux,(ntarefas+aux));TrataTextott=newTrataTexto(saida,Integer.toString(nthreads));tt.start();tts[i]=tt;aux+=ntarefas;}//Espera as threads terminaremfor(TrataTexttt:tts){tt.join();}exibirResultados();}
TrataTexto adiciona um item na lista, na última linha do método run()
Talvez também ThreadGroup.activeCount() possa ajudar, mas no javadoc cita a palavra “estimativa”.
samuelrrm
ViniGodoy ,
Obrigado, Funcionou não como queria mas já sei o que fazer.Só vou precisar dar um repaint num JProgresBar.
CarvalR2,
Obrigado ,também.
Só pra constar, a comparação do while iria terminar-lo no meio do caminho.Iria criar também menos threads.
Ficariam coisas a fazer.
Soluçoes simples que eu nem imaginava. :lol:
Obs. Voces 7 segundos de diferença nas respostas de vocês aqui. :shock: