如果在另一篇文章中有明确的例子,请让我知道。我的线程存在交错打印问题。我试图通过在所有线程中使用共享变量来控制我的线程。下面的伪代码突出显示了我的代码给我带来的问题。我已经尝试了一切,让线程等待轮流打印。目前只有少数产出线正在销毁。Perl线程打印不正确
#!/usr/bin/perl
use threads;
use threads::shared;
my $PRINTFLAG :shared = 1;
Run_Threads();
sub Do_stuff{
lock($PRINTFLAG);
cond_wait($PRINTFLAG) until $PRINTFLAG == 1;
$PRINTFLAG = 0;
print "$working\n";
$PRINTFLAG =1;
}
子产生线程。
sub Run_Threads{
my @threads;
for (my $i = 1; $i <= 5; $i++){
push @threads, threads->create(\&Do_stuff);
}
foreach (@threads){
$_->join;
}
}
任何时候我听到“线程”和“打印不正确”在同一句话中,我开始感到一种恐惧感。这通常是一件很难做到的事情。 –