让Perl找到“通缉”功能多线程

时间:2013-11-20 00:55:42

标签: multithreading perl

我有以下代码:

find(\&jpegCompress, @search_paths);

sub jpegCompress()
{
  #do processing
}

目前,它逐个逐个逐步浏览每个文件,这非常慢。有没有让jpegCompress函数创建一个线程(如果线程数是< maxThreads)并快速返回到find函数?

1 个答案:

答案 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
}