2015-03-24 64 views
2

我有一些Python代碼完全符合我的要求,但是我也有類似Perl的需求。在Perl中相當於一羣工作人員的Perl

這裏是Python代碼,我有:

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

這個代碼運行的每個功能在它自己的過程,而不是一個線程。同時運行的最大進程數量等於邏輯核心數量。

+0

看看[Thread :: Pool](https://metacpan.org/pod/Thread::Pool) – beresfordt 2015-03-24 23:39:41

回答

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;