无锁->轻量级锁->重量级锁
2019-12-14 17:13:00 67 举报
synchronized无锁升级重量级锁
作者其他创作
大纲/内容
无锁状态
失败,因线程2的争夺锁
指向重量级锁的指针|10
HashCode|age|0|01
CAS替换Mark Word
轻量级锁状态
失败
线程1
线程2
访问同步块
释放锁并唤醒等待的线程
线程被唤醒,重新争夺锁执行同步块
执行同步体
自旋获取锁
0|01
线程阻塞
锁膨胀,修改为重量级锁
指向栈的指针|00
分配空间并复制Mark Word到栈
成功
将对象头Mark Word替换为轻量级锁
对象头中Mark Word
重量级锁状态
0 条评论
下一页