我有以下代码:
find(\&jpegCompress, @search_paths);
sub jpegCompress()
{
#do processing
}
目前,它逐个逐个逐步浏览每个文件,这非常慢。有没有让jpegCompress函数创建一个线程(如果线程数是< maxThreads)并快速返回到find函数?
答案 0 :(得分: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
}