标签: 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}});阻止哈希中的密钥被删除吗?
lock (%{$j{$t}});
答案 0 :(得分:3)
我注意到"咨询"在lock's documentation中是粗体。确保您的其他线程正在尝试获取自己的锁。