使用thread :: queue使perl中的数组出列

时间:2010-03-29 21:18:52

标签: perl multithreading

我正在尝试使用一组线程处理数据并将其与另一个进行排队,目前排队和出列过程似乎无法正常工作

任何虽然??

sub process() {
    while (my @DataElement = $DataQueue->dequeue()) {
        print "\t".$DataElement[0]."\n";
    }
}

我使用以下内容将数据排入队列


my @l;
push(@l, $directories.$suffix);
push(@l, "testclass");
push(@l, $eachFile);
$DataQueue->enqueue(\@l);

2 个答案:

答案 0 :(得分:5)

您是否在不解除引用的情况下访问数组引用?试试

while (my $DataElementRef = $DataQueue->dequeue()) {
    my @DataElement = @$DataElementRef;
    print "\t".$DataElement[0]."\n";
}

答案 1 :(得分:1)

@l未共享,因此您无法将其引用传递给另一个线程。使用threads :: shared。