可重入,可打断,公平锁,条件变量原理解读

举报
yd_249383650 发表于 2023/06/28 15:37:45 2023/06/28
【摘要】 ​ ,假设没有其他竞争线程,那么 Thread-1 竞争成功​编辑park 阻塞 Thread-0​编辑signal 流程 假设 Thread-1 要来唤醒 Thread-0​编辑进入 ConditionObject 的 doSignal 流程,取得等待队列中第一个 Node,即 Thread-0 所在 Node ​编辑执行 transferForSignal 流程,将该 Node 加入 A...

 ,假设没有其他竞争线程,那么 Thread-1 竞争成功

编辑

park 阻塞 Thread-0

编辑

signal 流程 

假设 Thread-1 要来唤醒 Thread-0

编辑

进入 ConditionObject 的 doSignal 流程,取得等待队列中第一个 Node,即 Thread-0 所在 Node

 编辑


执行 transferForSignal 流程,将该 Node 加入 AQS 队列尾部,将 Thread-0 的 waitStatus 改为 0,Thread-3 的waitStatus 改为 -1

编辑

Thread-1 释放锁,进入 unlock 流程,略  

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。