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 ?