6
假设我有java.util.concurrent.locks.Lock
确定Java`Lock`由当前线程保持
实例是否有可能确定锁是否由当前线程举行?
假设锁对象只实现了Lock
接口并且不一定是可重入的,所以调用lock
或tryLock
可能不是检查锁的好方法。
假设我有java.util.concurrent.locks.Lock
确定Java`Lock`由当前线程保持
实例是否有可能确定锁是否由当前线程举行?
假设锁对象只实现了Lock
接口并且不一定是可重入的,所以调用lock
或tryLock
可能不是检查锁的好方法。
Lock
接口本身不提供这样的功能,但它的常见实现者ReentrantLock
有这样的方法:ReentrantLock.isHeldByCurrentThread()
。
但是请注意,正如文档所述,此方法的主要目的是调试,断言和测试。如果你需要正常的程序逻辑,那么可能有更好的解决方案。
谢谢,只是确认。我目前有成员声明为'Lock'类型,并需要做一些重构:) – arcyqwerty
哦,是的,我使用这个断言,深入程序逻辑,我想确保正确的锁定。感谢您推广良好做法! – arcyqwerty