our @threads; ... if ($cnt >= $NumPerThread) { my $thread = new Thread \&process, @group; push(@threads,$thread); undef @group; undef $cnt; } ... foreach my $thread (@threads) { $thread->join; }