是否有执行死锁检测的Lock实现?

时间:2015-11-26 13:27:11

标签: java multithreading concurrency locking

Java Docs for Lock在方法locklockInterruptiblytryLock的文档中包含以下声明。

  

Lock实现可能能够检测到锁的错误使用,例如可能导致死锁的调用,并且可能在这种情况下抛出(未经检查的)异常。必须通过Lock实现记录环境和异常类型。

Java 8 API中是否存在实际尝试检测此类"错误使用的Lock接口的实现"?

1 个答案:

答案 0 :(得分:0)

因此,经过一些研究后,我得出结论,答案显然是:

否。标准Java 8 API中的Lock实现都没有尝试做类似的事情。

然而,有些库具有检测(潜在)死锁的机制,这些机制利用显式权限来抛出锁定方法的Java Doc中给出的RuntimeException。这种机制的一个例子是路易斯·沃瑟曼在评论中提到的Guava's CycleDetectingLockFactory