并发源码_ReentrantLock解锁源码分析
2023-04-04 09:20:49
登录查看完整内容
ReentrantLock解锁源码分析
举报
猜你喜欢
大纲/内容
release(1)
尝试去释放锁unlock
取当前线程的后继节点 Node s = node.next
返回TURE
解除后继节点线程的阻塞
c == 0
计算新的stateint c = getState() - releasessetState(c)
Node h = headh != null && h.waitStatus != 0
撤销CLH队列中的一个Node对应线程的阻塞unparkSuccessor(head)
不为空
为空
不是返回FLASE
释放独占模式持有的锁tryRelease(arg)
设置持有sync对象为nullsetExclusiveOwnerThread(null)
从tail尾节点向前便利找最前面的waitStatus小于等于0的节点(等于0是针对队列Node为tail的情况)
0 条评论
回复 删除
下一页
职业:本科
作者其他创作:
ZK_05写数据ZAB协议源码剖析(最终版)
91 2023-05-17
ZK_04Zookeeper集群Leader选举源码剖析
111 2023-05-17
ZK_03Zookeeper分布式锁和注册中心使用
103 2023-05-17
ZK_02Zookeeper经典应用场景
230 2023-05-17
ZK_01Zookeeper特性与节点数据类型
127 2023-05-17
MQ_05Kafka设计原理详解
175 2023-05-12
MQ_04Kafka快速实战与基本原理详解
200 2023-05-12
MQ_03RocketMQ高性能的核心原理
160 2023-04-27
MQ_02RocketMQ快速实战
189 2023-04-27
MQ_01RocketMQ开发模型
174 2023-04-27
REDIS_06Redis版本改动特性及Redis6新特性
123 2023-04-26
REDIS_05redis缓存设计与性能优化
150 2023-04-26
REDIS_04Redis高并发分布式锁
140 2023-04-26
REDIS_03高可用集群
132 2023-04-26
REDIS_02持久化、主从与哨兵架构详解
126 2023-04-26
REDIS_01Redis核心数据结构
168 2023-04-18
MYSQL_10高性能表结构及索引设计
184 2023-04-16
MYSQL_09从架构师角度全局理解Mysql性能优化
174 2023-04-16
MYSQL_08MVCC与BufferPool缓存机制
180 2023-04-16
MYSQL_07Mysql杂记
230 2023-04-13