我用Perl编写了一个非常短的脚本,并在其中使用了multi-thread。
我的问题是,我创建的线程不是joinable。所以我想知道,使线程可接合的条件是什么?
Perl中线程的限制是什么?
#!/usr/bin/env perl
#
#
use lib "$::XCATROOT/lib/perl";
use strict;
use threads;
use Safe;
sub test
{
my $parm = shift;
}
my $newchassis = ["1", "2", "3"];
my @snmp_threads ;
for my $item (@$newchassis)
{
my $thread = threads->create(\&test, $item);
push @snmp_threads, $thread;
}
for my $t (@snmp_threads)
{
$t->join();
}这可能是非常棘手的,因为它在RHEL 6.3上工作,但在SLES 11sp2上失败。
发布于 2013-04-23 16:51:36
虽然没有代码,但我将继续并假定您正在使用join foreach @threads;来连接线程。现在线程的连接依赖于后处理。如果不看你的代码,就很难知道你在做什么。
$_->join foreach @threads;都是可行的。$_->join foreach @threads;。但是,线程可能返回的任何结果都将被丢弃。是否确实为您的活动提供了有效的后处理方案?
https://stackoverflow.com/questions/16164085
复制相似问题