JAVA多线程-Lock的使用(三)-Lock与Condiition相关的方法
来源:互联网 发布:mac系统外置光驱 编辑:程序博客网 时间:2024/05/16 17:08
Lock与Condiition相关的方法
1、int lock.getHoldCount():查询当前线程保持锁定的个数,也就是调用lock()方法的次数
2、int lock.getQueueLength():返回正在等待获取此锁定的线程估计数。
比如:有5个线程,有一个首先执行await()方法,那么调用该方法后返回值为4,说明有4个线程同时在等待lock的释放。
3、int lock.getWaitQueueLength(Condition condition):返回等待与此锁定相关的给定条件condition的线程估计数
比如:有5个线程,每个线程都执行了同一个condition对象的await()方法,则调用该方法是返回的int值为5。
4、boolean lock.hasQueueThread(Thread thread):查询指定的线程是否在等待获取此锁定。
5、boolean lock.hasWaiters(Condition condition):查询是否有线程正在等待与此锁定有关的condition条件。
6、boolean lock.isFair():判断是不是公平锁。
7、boolean lock.isHeldByCurrentThread():查询当前线程是否保持此锁定。
8、boolean lock.isLocked():查询此锁定是否有任意线程锁定。
9、void lock.lockInterruptibly():如果当前线程未被中断,则获取锁定,如果已经被中断则出现异常。
解释说明:lock.lockInterruptibly()方法是用来替换lock.lock(),在获取锁定中,如果遇到interrupt,则出现异常。
而lock()方法,则不会抛出异常,继续执行。
10、boolean lock.tryLock():仅在调用锁定未被另一个线程保持的情况下,才获取该锁定。
11、boolean lock.tryLock(long timeout,TimeUnit unit):如果锁定在给定等待时间内没有被另一个线程保持,且当前线程未被中断,则获取该锁定。
lock.tryLock(3,TimeUnit.SECONDS)
12、void lock.awaitUninterruptibly():用来替换lock.await(),遇到interrupt,正常运行不会抛出异常,而await()方法会抛出异常。
13、void lock.awaitUntil(long timeout):用来替换lock.await(),可以指定多长时间后自动唤醒,在这个时间内,可以被signal()方法唤醒。
- JAVA多线程-Lock的使用(三)-Lock与Condiition相关的方法
- Java多线程编程4--Lock的使用--相关方法
- Lock的使用 java多线程
- Java多线程--Lock的使用
- java多线程Lock的使用。
- JAVA多线程-Lock的使用(一)-ReentrantLock与Condition
- Java多线程 之 lock与condition的使用(十四)
- 《java多线程编程核心技术》核心笔记(三) Lock的使用
- java多线程-Lock与Condition接口的使用详解
- Java多线程之Lock的使用
- Java多线程之Lock的使用
- JAVA多线程之Lock的使用
- Java多线程之Lock的使用
- Java学习--多线程之Lock的使用
- Java多线程之Lock的使用
- Java多线程之Lock的使用
- Java多线程之Lock的使用
- Java多线程之Lock的使用
- Codeforces Round #343 (Div. 2) D. Babaei and Birthday Cake(线段树+离散化优化DP)
- 《Android源码设计模式》读书笔记 (11) 第11章 命令模式
- 数据结构(9)--链队列的定义以及相关操作的实现
- 不再年轻的时候
- 【Linux 开发篇】之 vim插件
- JAVA多线程-Lock的使用(三)-Lock与Condiition相关的方法
- latex学习笔记4 文章的对齐
- IOS学习 UIAlertView and ActionSheet
- ftp梳理
- java常量池详解
- VTK物体内部检测
- 加速度传感器的原理和应用-手机翻转、失重检测、运动检测、位置识别
- 电商制作后台中前台的知识点
- KMP模式匹配的next数组