Java Docs for Lock在方法lock
,lockInterruptibly
和tryLock
的文档中包含以下声明。
Lock实现可能能够检测到锁的错误使用,例如可能导致死锁的调用,并且可能在这种情况下抛出(未经检查的)异常。必须通过Lock实现记录环境和异常类型。
Java 8 API中是否存在实际尝试检测此类"错误使用的Lock
接口的实现"?
答案 0 :(得分:0)
因此,经过一些研究后,我得出结论,答案显然是:
否。标准Java 8 API中的Lock实现都没有尝试做类似的事情。
然而,有些库具有检测(潜在)死锁的机制,这些机制利用显式权限来抛出锁定方法的Java Doc中给出的RuntimeException
。这种机制的一个例子是路易斯·沃瑟曼在评论中提到的Guava's CycleDetectingLockFactory。