ReRerantReadWriteLock的getReadHoldCount和getReadLockCount有什么区别?
答案 0 :(得分:0)
阅读文档,即方法的javadoc:
getReadHoldCount()
:返回当前线程对读锁的保留次数,如果当前线程未保持读锁定,则返回零。
getReadLockCount()
:返回保留的读锁数。
请记住,一个主题可以在ReadLock
多次调用lock()
,这只需要一次实际锁定,但每次调用lock()
都必须通过调用{{}来匹配3}}在释放实际锁之前。
锁定计数是具有读锁定的线程数。
写锁定有相应的方法:
unlock()
:返回当前线程写锁的保留次数,如果当前线程未保持写锁,则返回零。
与之前相同,线程可以多次保持写锁定。
那为什么没有getWriteLockCount()
?因为最多只有一个线程可以有写锁定,所以返回计数没有意义。布尔值就足够了:getWriteHoldCount()
:如果任何线程持有写锁,则返回true,否则返回false。