如何使用threads :: shared声明共享属性?

时间:2014-08-25 20:22:04

标签: multithreading perl moose

使用threads::shared,可以声明一个共享变量:

my $n_lines_waiting: shared = 0;

使用Moose,属性通过'has'声明:

has 'p_queue' => (is => 'ro', isa => 'Thread::Queue', default => sub{ return Thread::Queue->new(); });

有没有办法组合threads :: shared和Moose?我想用这个漂亮的Moose语法来声明一个可以在线程之间共享的属性。

1 个答案:

答案 0 :(得分:0)

它应该像更改默认值以包含相同的语法一样简单:

'default' => sub {
    my $queue :shared = Thread::Queue->new();
    return $queue
},