假设我有一个
有可能确定当前线程是否持有锁吗?
假设锁对象仅实现了
java.util.concurrent.locks.Lock
的实例,有可能确定当前线程是否持有锁吗?
假设锁对象仅实现了
Lock
接口,并且不一定是可重入的,因此调用lock
或tryLock
可能不是检查锁的好方法。java.util.concurrent.locks.Lock
的实例,Lock
接口,并且不一定是可重入的,因此调用lock
或tryLock
可能不是检查锁的好方法。Lock
接口本身不提供此功能,但其常见实现类ReentrantLock
有此方法:ReentrantLock.isHeldByCurrentThread()
。
然而需要注意的是,正如文档所述,此方法的主要目的是用于调试、断言和测试。如果您需要它来进行正常程序逻辑,那么可能存在更好的解决方案。