並列実行スレッドを制限するオプションはありますか。例では、次のコードがあります。
use threads;
use LWP::UserAgent qw( );
my $ua = LWP::UserAgent->new();
my @threads;
# if @threads < 200
for my $url (@URL_LIST) {
push @threads, async { $ua->get($url) };
}
# if @threads <= 200
for my $thread (@threads) {
my $response = $thread->join;
...
}
@URL_LIST に 10000 を超える URL が含まれている場合、200 の並列リクエストのみを処理するスクリプトを作成しようとしています。しかし残念ながら、スクリプトは最後に 20 以上のスレッドが未完了であるという情報を取得します。解決策は何ですか?