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

 use warnings;
use strict;
use threads; sub TEST{
print "Hello, World!\n";
return (qw/ 'a'/);
} #返回列表方法1
my ($t1) = threads->new('TEST');
print $t1->join, "\n"; #返回列表方法2
#
my $t2 = threads->new({'context' => 'list'}, 'TEST');
print $t2->join, "\n"; #返回单个值
my $t3 = threads->new('TEST');
print $t3->join, "\n";
getc();

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

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

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

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

上一篇:Jodd


下一篇:日积月累--线程中断interrupt()方法