perl多线程:锁定以防止竞争条件

时间:2015-03-12 18:09:13

标签: multithreading perl

lock (%{$j{$t}});
@keys = sort {${$j{$t}}{$a}{stime} cmp ${$j{$t}}{$b}{stime}
                    } keys %{$j{$t}};

排序时我得到“共享标量的值无效” 我注意到如果$ j {$ t}} {$ a}不存在,即在被另一个线程排序时被删除,我会收到此错误。

无法lock (%{$j{$t}});阻止哈希中的密钥被删除吗?

1 个答案:

答案 0 :(得分:3)

我注意到"咨询"在lock's documentation中是粗体。确保您的其他线程正在尝试获取自己的锁。