关于lock的一些函数记录

本文详细介绍了ReentrantLock类的方法,包括获取锁定次数、等待队列长度等,并解释了如何使用这些方法来控制线程同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

int  getHoldCount():查询当前线程保持此锁定的个数,也就是调用lock()方法的次数

int getQueueLength()返回正等待获取此锁定线程估计数,比如有5个线程,1个线程首先执行了await()方法,那么在调用次函数返回值为4,

int getWaitQueueLength(Condition condition)作用是返回等待与此锁定相关的给定条件Condition的线程估计数,比如有5个线程,每个线程都执行同一个Condition的await方法,返回值为5

boolean hasQueuedThread(Thread thread)查询指定的线程是否正在等待获取此锁定

boolean hasQueuedThreads()查询是否有线程正在等待获取此锁定

boolean hasWaiters(Condition condition) 查询是否有线程正在等待与此锁定有关的condition条件

boolean isFair()判断是不是公平锁

boolean isHeldByCurrentThread查询当前线程是否保持此锁定

boolean isLocked()查询此锁定是否由任意线程保持

void lockInterruptibly()如果当前线程未被中断,则获取锁定。如果已经被中断则出现异常

boolean tryLock()仅在调用时锁定未被另一个线程保持的情况下,才获取该锁定

boolean tryLock(Long timeout,TimeUnit unit) 如果锁定在给定等待时间内没有被另一个线程保持,且当前线程未被中断,则获取该锁定

void awaitUntil()在等待时间内可以被其他线程唤醒,过了时间后,自动唤醒

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值