在Windows上通过Perl进行多处理

0 perl multiprocessing

我写了这个应该打开几个进程的代码,问题是它在linux上运行得很好但是当我在windows上执行它时它只创建一个进程!! 这可以用perl在windows上创建多进程吗?

$j = ARGV[0];
for($i=1; $i<=$j; $i++){
system("perl example.pl word.txt.$i &");
}
Run Code Online (Sandbox Code Playgroud)

Zai*_*aid 6

&是一个*nix的东西.forkWindows中的显式将执行此操作.

请记住,Perl的Windows实现使用线程模拟分叉,因此这可能是另一种选择.

my @pids;
for my $i (1 .. $j) {

    my $pid = fork;

    unless ( $pid ) {  # Child
        system("perl example.pl word.txt.$i");
        exit 0;
    }

    push @pids, $pid;
}

waitpid $_, 0 foreach @pids;
Run Code Online (Sandbox Code Playgroud)