java锁膨胀过程
2023-01-28 21:53:54 7 举报
java锁膨胀简单描述
作者其他创作
大纲/内容
否
失败
说明出现竞争
重量级锁
锁状态是01
超过阈值次数没有获取到
表示当前无锁或者是偏向锁
1.设置了jvm参数可偏向2. 锁没有升级
CAS替换对象头中MarkWord指向栈中地址
执行同步体
对象可偏向
获取轻量级锁
拷贝对象头数据到栈中
结束
锁模式更新为不可偏向模式
偏向锁
检查对象头中是否存储了当前线程
CAS替换对象头中的线程ID为当前线程ID
获取偏向锁
当前线程栈中分配锁记录
是
锁状态是00
则为重量级锁
自旋
阻塞当前线程
访问同步块
轻量级锁
撤销偏向锁
成功
自旋获取到了锁
0 条评论
下一页