偏向锁升级过程2
2022-07-06 23:17:29 6 举报
偏向锁的升级过程
作者其他创作
大纲/内容
Mark Word中的线程ID是否为空?
Mark Word记录的线程ID是否为当前线程
暂停原持有偏向锁的线程
锁标志位是否为01
检查原持有偏向锁的线程状态
同步代码块没有执行完
【0】升级
否
撤销偏向锁
执行同步代码块
是
轻量级锁指向Lock Record的指针 | 00
修改Mark Word001
结束
已退出同步代码块
成功
竞争线程未达到批量重偏向临界点
访问同步方法/代码块
原线程继续往下执行(可能会重新进入同步代码块)
【1】已经是偏向锁了
偏向锁状态位
唤醒原持有偏向锁的线程
偏向锁ThreadID | 101
CAS替换线程ID是否成功?
stop the world
0 条评论
下一页