Perl相当于Python中的工作池

时间:2015-03-24 23:33:28

标签: python perl multiprocessing

我有一些Python代码完全符合我的要求,但我也需要在Perl中使用类似的东西。

这是我的Python代码:

pool = multiprocessing.Pool()
for item in list:
    pool.apply_async(myFunction, args=(item,))
pool.close()
pool.join()

此代码在其自己的进程而不是线程中运行每个函数。同时运行的最大进程数等于逻辑核的数量。

1 个答案:

答案 0 :(得分:5)

use Parallel::ForkManager;

my $pm = Parallel::ForkManager->new($MAX_PROCESSES);

foreach my $item (@list) {
    $pm->start and next;
    my_function($item);
    $pm->finish;
}
$pm->wait_all_children;