【发布时间】:2012-10-09 01:47:29
【问题描述】:
我有一个可重入锁,我将它封装在一个自定义类中以满足我自己的需要。但是,由于应用程序的性质,持有可重入锁的锁的线程会卡住(外部故障)并且无法释放可重入锁。
我想知道是否有一种方法可以显式解锁可重入锁?我知道可重入锁的 API 没有这样的方法 - 但是我正在考虑引入一个计时器任务,该任务将在一段时间后解锁可重入锁或杀死持有可重入锁的线程。
在尝试强制解锁我的可重入锁方面还有其他建议吗?我的解决方案很好,所以我问。
【问题讨论】:
-
你有一些示例代码吗?所有锁都应该包裹在
try/catch/finally块中,在最后一部分中,您应该释放当前持有的所有锁
标签: java multithreading concurrency locking reentrancy