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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?
Partager