如何并行运行子程序?

Jee*_*Jsb 2 parallel-processing perl

for(i=0; i<5; i++)
{
  method1();
}

sub method1()
    {
           // here do something
    }
Run Code Online (Sandbox Code Playgroud)

这里我在for循环中调用了method1子程序.在这里,我希望在不等待先前调用的结果的情况下调用(并行)此method1子例程.怎么做 ?除了线程之外还有其他方法吗?

ike*_*ami 6

主题:

use threads;

for (0..4) {
    async { f() };
}

$_->join() for threads->list;
Run Code Online (Sandbox Code Playgroud)

流程:

use forks;

for (0..4) {
    async { f() };
}

$_->join() for forks->list;
Run Code Online (Sandbox Code Playgroud)

Coro线程:

use Coro;

my @threads;
for (0..4) {
    push @threads, async { f() };
}

$_->join() for @threads;
Run Code Online (Sandbox Code Playgroud)

Coro提供了一个协作式多任务系统,因此其他线程只有在当前一个线程被阻塞等待事件时才有机会执行.