没有合适的资源?快使用搜索试试~ 我知道了~
Java多线程ReentrantLock1
资源详情
资源评论
资源推荐
Java多线程---ReentrantLock
ReentrantLock介绍
重⼊锁。同⼀个线程可以锁住多次,但是在使⽤完毕后,必须释放多次锁才
能将锁完全释放,否则,还是该线程还是会处于阻塞状态。并且重⼊锁有两
种,⼀种是公平锁,⼀种是⾮公平锁,公平锁会把锁按照顺序轮流交付线程
执⾏,⽽⾮公平锁不会,⾮公平锁会乱序选择⼀个线程执⾏。
ReentrantLock使⽤
ReentrantLock.lock:加锁
ReentrantLock.tryLock:可输⼊时间,如果在指定时间内,获取到锁的话,那
么就会返回true,否则返回false,如果没有指定时间的话,就⽴即去尝试获
取锁
ReentrantLock.lockInterruptibly:可以被中断的锁,加锁的线程被调⽤
interrupt⽅法后,可以被中断释放锁,⽽不会抛出异常
ReentrantLock.isHeldByCurrentThread:判断当前的Lock是否被当前线程Hold
住
ReentrantLock.getHoldCount:判断当前的锁被多少个线程引⽤住
ReentrantLock.hasQueuedThread:判断传⼊的Thread是否已经存在于锁等待
队列中
ReentrantLock.hasQueuedThreads:判断当前等待队列中是否有线程正在等
待锁
ReentrantLock中的Node中waitStatus
Node中的waitStatus中会有五种变量:
1. CANCELLED:值为1。表⽰当前节点被取消了,由于超时或者中断的原因
导致的取消,那么这个节点就永远会处于CANCELLED状态,不会在变成
其他的状态了。典型的,⼀个被Cancelled节点永远不会被阻塞。
2. 0:除了四种状态之外的所有状态
3. SIGNAL:值为-1。表⽰当前节点的后继节点已经被阻塞或者即将被阻塞
牛站长
- 粉丝: 22
- 资源: 299
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0