• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

2.Perl多线程:Threads(线程返回值)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 1 use warnings;
 2 use strict;
 3 use threads;
 4  
 5 sub TEST{
 6     print "Hello, World!\n";
 7     return (qw/1 2 3 4 'a'/);
 8 }
 9  
10 #返回列表方法1
11 my ($t1) = threads->new('TEST');
12 print $t1->join, "\n";
13  
14 #返回列表方法2
15 #
16 my $t2 = threads->new({'context' => 'list'}, 'TEST');
17 print $t2->join, "\n";
18  
19 #返回单个值
20 my $t3 = threads->new('TEST');
21 print $t3->join, "\n";
22 getc();

 

对于函数调用, 如果要得到返回列表, 你应要用一个@values来获得返回值:

1 #eg.
2 my @values = &test;
3 #如果函数调用中返回列表, 如你用一个$value获得返回值, 应会得到列表的最后一个元素的值
4 #eg.
5 my $value = (1,2,3,4 'a');
6 print $value;
7 #result:'a'
8 #注意, 这跟my $value = 1,2,3,4, 'a';不同
9 #

 

在多线程中, 想得到线程返回程, 那就调用join方法, 如果没必要获取返回值, 要调用detach方法, 如果两个都不调用, 会得到一个警告。
一般来说, 都应调用join/detach方法。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap