ReentrantLock定义为:
java.util.concurrent.locks.ReentrantLock
1、int getHoldCount():
作用是查询当前线程保持锁定的个数,也就是调用lock()方法的个数。
2、int getQueueLength()
作用是返回正等待获取此锁定的线程估计数,比如有5个线程,1个线程首先执行await()方法,那么在调用
getQueueLength()方法后返回值为4,说明有4个线程同时在等待lock的释放。
3、int getWaitQueueLength(Condition condition)
作用是返回等待与此锁定相关的给定条件Condition的线程估计数,比如有5个线程,每个线程
都执行了同一个condition对象的await()方法,则调用getWaitQueueLength(Condition condition)返回的int值为5.
4、boolean hasQueuedThread(Thread thread)
作用是查询指定线程是否在等待获取此锁定。
5、boolean hasWaitters(Condition condition)
作用是查询是否有线程正在等待与此锁定有关的condition条件。
6、boolean hasQueueThreads()
作用是查询是否有线程正在等待获取此锁定。
7、boolean isFair()
作用是判断是不是公平锁。
8、boolean isHeldByCurrentThread()
作用是查询当前线程是否保持锁定状态。
9、boolean isLocked
作用是查询此锁定是否由任意线程保持。
10、void lockInterruptibly()
作用是:如果当前线程未被中断,则获取锁定,如果已经被中断,则出现异常。
11、boolean tryLock()
作用是:仅在调用时锁定未被另一个线程保持的情况下,才获取锁定。
12、boolean tryLock(long timeout,TimeUnit unit)
作用是:如果锁定在给定的等待时间内没有被另一个线程保持,且当前线程未被中断,则或许该锁定。