Perl分叉管理器
我启动Perl forkmanager时限制为4个进程,但它启动时更像8个进程。那么,我如何控制启动了多少个进程呢?(我希望先完成4个,然后再开始另一个这样的4个):我的代码如下所示Perl分叉管理器,perl,Perl,我启动Perl forkmanager时限制为4个进程,但它启动时更像8个进程。那么,我如何控制启动了多少个进程呢?(我希望先完成4个,然后再开始另一个这样的4个):我的代码如下所示 opendir($par_dir,$parent); while( my $sub_folders = readdir($par_dir)){ if ($sub_folders =~ /^..?$/){next;} my $path = $parent. '/'.$sub_folders; next
opendir($par_dir,$parent);
while( my $sub_folders = readdir($par_dir)){
if ($sub_folders =~ /^..?$/){next;}
my $path = $parent. '/'.$sub_folders;
next unless ( -d $path);
opendir ( $sub_dir,$path);
while ( my $file =readdir($sub_dir)){
next unless $file =~ /\.bai?$/i;
my $destdir = $outdir;
$pm-> start() and next;
$pm->set_max_procs(MAX_CHILDREN);
mkdir( $destdir, 0777 );
system("do something with the $file);
}
$pm ->finish();
closedir($sub_dir);
}
$pm->wait_all_children;
你在用什么?如果您提供一个指向您正在使用的软件包的链接(CPAN上的permalink很好),这会有所帮助。许多人不会遇到它,因为它只是CPAN上25000个包中的一个
请注意,Parallel::ForkManager的概要说明:
use Parallel::ForkManager;
$pm = Parallel::ForkManager->new($MAX_PROCESSES);
那么,您在创建$pm
句柄时是否指定了4作为参数