java中ReentrantLock部分方法解释

    xiaoxiao2021-04-12  38

    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)

          作用是:如果锁定在给定的等待时间内没有被另一个线程保持,且当前线程未被中断,则或许该锁定。

    转载请注明原文地址: https://ju.6miu.com/read-668214.html

    最新回复(0)