首页 > 解决方案 > 如何总结perl中线程数组返回的所有值?

问题描述

我有线程执行一个返回整数的子程序。

sub process_tasks {
    ...
    return($nb_item_processed);
}

这是我启动线程的方式

map { threads->new(\&process_tasks, $_) } 1 .. $nb_threads;

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

标签: perl

解决方案


线程返回的值由join.

use List::Util qw( sum );

my $sum =
   sum
      map { $_->join() }
         map { async { process_tasks($_) } }
            1 .. $nb_threads;

推荐阅读