如何总结由perl中的线程数组返回的所有值?

bok*_*kan 3 perl

我有执行 sub 的线程,它返回一个整数。

sub process_tasks {
    ...
    return($nb_item_processed);
}
Run Code Online (Sandbox Code Playgroud)

这是我启动线程的方式

map { threads->new(\&process_tasks, $_) } 1 .. $nb_threads;
Run Code Online (Sandbox Code Playgroud)

如何计算所有返回值的总和?

ike*_*ami 5

线程返回的值由 返回join

use List::Util qw( sum );

my $sum =
   sum
      map { $_->join() }
         map { async { process_tasks($_) } }
            1 .. $nb_threads;
Run Code Online (Sandbox Code Playgroud)