foreach $name (@project_list)
{
# a thread is created for each project
my $t = threads->new(\&do_work, $name);
push(@threads, $t);
}
foreach (@threads) {
my $thrd = $_->join;
print "Thread $thrd done\n";
}
sub do_work {
# execute some commands here...
}
project_listには40項目のリストがあります。各アイテムのスレッドを生成すると、結合メソッドは最初のスレッドが終了してから次のスレッドに移動するのを待機しますか?Perlのスレッド結合メソッドは、複数のスレッドを起動すると、最初のスレッドが終了するのを待ちますか?
これが当てはまる場合は、避けることができますか?私は、いくつかのスレッドが速く完了し、他のスレッドが待っていることを意味します。
詳細情報が必要な場合は教えてください。 ありがとうございます。
スレッドはそれぞれのファイルに書き込みを行い、最後にファイルは1つのファイルにマージされます。スレッドはデータを共有しません。だから私はここでデタッチを使うことはできないと思う。 – infinitloop
@rashid:それぞれ個別に後処理することもできません。ファイルをマージするには、すべてのスレッドが終了するまで待つ必要があります。失われた時間を「必要な廃棄物」と考えてください。 – Zaid