锁升级
2020-06-04 17:04:08 19 举报
轻量级锁升级为重量级锁过程
作者其他创作
大纲/内容
指向重量级锁的指针 10
CAS替换Mark Word
分配空间并复制Mark Word到栈
访问同步块
Mark Word的变化
线程1
HashCodelage0|01
重量级锁
线程2
将Mark Word替换为轻量级锁
无锁状态
CAS修改Mark Word
0|10
线程被唤醒,重新争夺锁访问同步块
失败,线程1已经获得锁
执行同步体
轻量级锁
失败
失败,因线程2在争夺锁
轻量级锁及膨胀流程图
自旋获取锁
成功
线程阻塞
锁膨胀,修改为重量级锁
指向栈的指针 00
释放锁并唤醒等待的线程
0 条评论
回复 删除
下一页