lemming
16-10-2007, 08:32
Come si fa a aspettare che una serie imprecisata di thread siano terminati.
Per aspettare che un thread th sia finito, faccio un thread (joinThread) e in run gli metto th.join
Se i thread sono più di uno e sono stati istanzati così:
Thread th[];
for(int i=0; i<100; i++)
{th[i] =new Thread();
th[i].start();}
Thread joinThread = new Thread();
???
Il problema è perchè quando istanzo il joinThread non è detto che tutti i Thread th siano stati finiti. Però dovrebbero essere stati istanziati tutti.
Quindi avrei pensato di fare qualcosa tipo
il run di joinThread -->
run(){
for(int q =0; q >=th.length; q++)
{ try {th[q].join(); }
catch...}
altraFunzione();
}
altraFunzione dovrebbe essere eseguita quando tutti i th sono finiti.
Dov' è il problema?
altraFunzione mi viene eseguita prima che tutti i thread concludano la loro vita.
Per aspettare che un thread th sia finito, faccio un thread (joinThread) e in run gli metto th.join
Se i thread sono più di uno e sono stati istanzati così:
Thread th[];
for(int i=0; i<100; i++)
{th[i] =new Thread();
th[i].start();}
Thread joinThread = new Thread();
???
Il problema è perchè quando istanzo il joinThread non è detto che tutti i Thread th siano stati finiti. Però dovrebbero essere stati istanziati tutti.
Quindi avrei pensato di fare qualcosa tipo
il run di joinThread -->
run(){
for(int q =0; q >=th.length; q++)
{ try {th[q].join(); }
catch...}
altraFunzione();
}
altraFunzione dovrebbe essere eseguita quando tutti i th sono finiti.
Dov' è il problema?
altraFunzione mi viene eseguita prima che tutti i thread concludano la loro vita.