Synchronized锁升级总结
2022-06-15 19:27:10 0 举报
Synchronized锁升级总结
作者其他创作
大纲/内容
偏向锁撤销,如果当前对象被锁定同步代码块中调用HashCode或者wait方法
解锁
epoch
0
theadId
1
01
age
指向Lock Record的指针
10
偏向锁状态(101)未锁定,可偏向的对象,没有绑定ThreadId
偏向锁延迟4s
禁用偏向锁/不满足偏向锁条件
偏向锁状态(101)绑定ThreadId
无锁状态未被锁定,不可偏向
创建对象Object
重偏向
偏向锁撤销,当前对象被锁定
偏向锁撤销,当前对象未被锁定
加锁,修改mark word并拷贝Mark Word到线程栈的Lock Record中
重量级锁状态
轻量级锁状态未被锁定,不可偏向
加锁/解锁
持有锁的线程会进入到同步代码块
轻量级锁膨胀,创建monitor对象,修改markWord
hashCode
无锁状态膨胀创建monitor对象,修改markWord
开始
00
指向Monitor的指针
收藏
0 条评论
下一页