- 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)