Multithreads attendre la fin d'exécution
Bonjour,
Je fais une application qui a besoin de lancer X threads et d'attendre qu'ils aient tous finis avant d'en relancer d'autres. Mais je ne vois pas comment faire car la méthode ->join() bloque 1 thread mais pas plusieurs en même temps...
Voici mon bout de code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| my $LEVEL = $MATRIX->{LEVEL} + 1;
while ($LEVEL >= 0)
{
$CPT = 0;
while ($CPT <= $MATRIX->{LEVEL} + 1)
{
my $thr = threads->new(sub {
print "Thread start\n";
process($MATRIX->{$CPT});
$MATRIX->{$CPT}->{STARTED} = 1;
print "Thread end\n";
});
$CPT+=1;
}
# attendre ici que tous les threads lancé dans le while d'avant soient finis
$LEVEL-=1;
} |
Comment faire ça ?