/ / Perlに「必要な」関数をマルチスレッド化させる-マルチスレッド、perl

Perlにマルチスレッド化された "欲しい"機能を見つけさせる - マルチスレッド化、perl

私は次のコードを持っています:

find(&jpegCompress, @search_paths);

sub jpegCompress()
{
#do processing
}

現在、各ファイルを1つずつ確認します直列で、これは非常に遅いです。とにかくjpegCompress関数でスレッドを作成し(スレッドカウントが<maxThreadsの場合)、find関数にすばやく戻る方法はありますか?

回答:

回答№1は2

Parallel :: ForkManager モジュールは単純な並列処理を提供します。例:

use Parallel::ForkManager;

$pm = new Parallel::ForkManager($MAX_PROCESSES);

foreach $file (@jpeg_files) {
# Forks and returns the pid for the child:
my $pid = $pm->start and next;

jpegCompress($file);

$pm->finish; # Terminates the child process
}