perl实现多线程详解.docVIP

  • 19
  • 0
  • 约6.56千字
  • 约 6页
  • 2019-10-11 发布于江西
  • 举报
? 查看文章 ? Perl多线程 2007-09-21 13:14 利用threads包,可以很方便的实现多线程编程。 不过今天发现threads包有一个问题,不能利用参数返回结果了。 比如有这样一个子函数: sub foo{ ??? my $v1 = shift; ??? $v1-{a} = aa; } 如果我们这样调用它: my $res = {}; foo($res); print $res-{a}; 就可以得到输出: aa 可是如果使用线程: my $res = {}; my $thread = threads-create(foo, $res); $thread-join(); print $res-{a}; 则不能正确返回结果。我猜测是因为threads对传入的变量进行了复制,而不是引用。 这点等以后分析了threads包再确定。 没有办法,如果确实要返回值的话,好采用如下的方式了: sub foo{ ??? my $v1 = {}; ??? $v1-{a} = aa; ??? return $v1; } my $thread = threads-create(foo); my $res = $thread-join(); print $res-{a}; ============================================

文档评论(0)

1亿VIP精品文档

相关文档