首页 > 代码库 > 2.Perl 多线程:Threads(线程返回值)
2.Perl 多线程:Threads(线程返回值)
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 = http://www.mamicode.com/1,2,3,4, ‘a‘;不同>9 #
在多线程中, 想得到线程返回程, 那就调用join方法, 如果没必要获取返回值, 要调用detach方法, 如果两个都不调用, 会得到一个警告。
一般来说, 都应调用join/detach方法。
2.Perl 多线程:Threads(线程返回值)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。