for ( 1..2 ) {
threads -> create ( \&worker );
}
####
for ( 1..2 ) {
my $temp_scalar = threads -> create ( \&worker );
}
##
##
$ perl pm_1228826.pl
sum=1
sum=2
##
##
use strict;
use warnings;
use threads;
use Thread::Queue;
my $process_q = Thread::Queue -> new(1,2);
sub worker {
while ( $process_q -> dequeue() ) {
my $retVar=threads -> self() -> tid();
return $retVar;
}
}
$process_q -> end();
#start some threads
for ( 1..2 ) {
my $tmp = threads -> create ( \&worker );
}
#Wait for threads to all finish processing.
foreach my $thr ( threads -> list() ) {
my $sum=$thr -> join;
print "sum=$sum\n";
}