Кажется, что следующее не выполняется в параллельных потоках, как я ожидал, но каждый процесс блокируется до его завершения:
my @arr = (1,2,3,4);
foreach (@arr) {
threads->new(\&doSomething, $_)->join;
}
sub doSomething {
my $thread = shift;
print "thread $thread\n";
sleep(5);
}
Другими словами, похоже, что он выполняется так же, как и в непоточной версии:
my @arr = (1,2,3,4);
foreach (@arr) {
doSomething($_);
}
Я использую ActivePerl v5.10.1 mswin32-x86-multi-thread
Как запустить параллельные потоки в Perl?