死锁检测的代价是多少?

时间:2013-11-17 19:54:16

标签: java concurrency deadlock guava

我想知道Lock检测周期有多复杂,它有多少开销。实际上,我认为它应该相当简单,但Java中缺乏它让我不确定。

an answer建议使用tryLock,但这种检测是恕我直言,语言应该提供开箱即用(作为选项)。

我发现的唯一类似的东西是Guava的CycleDetectingLockFactory,但它有一些非常重要的开销和doesn't try来捕捉所有的死锁。

1 个答案:

答案 0 :(得分:1)

我认为可能是O(N ** 3),因为你可以在对象上持有X锁,每个对象都可以等待Y个其他线程。然后你必须在拓扑上对它们进行排序以检测循环。