synchronized 偏向锁
2023-03-13 16:53:37 0 举报
synchronized中获取偏向锁的具体流程
作者其他创作
大纲/内容
1偏向锁(101)
获得代码块执行权限,进入代码块
cas操作更改锁对象Mark Word的线程ID
为空
更改失败
00轻量级锁
线程1绿色线线程2红色线
01
更改成功
锁升级为轻量级锁,并指向线程1.线程1继续执行代码块
不为空
线程1执行完代码块
重量级锁的实现
锁对象MarkWord中线程ID是否为空
轻量级锁的实现
不相等
锁对象MarkWord中线程ID于本线程ID是否相等
未执行完
判断锁标识位
执行完
001无锁
到底全局安全点。暂停获得锁的线程1
偏向锁撤销成无锁状态,线程2通过轻量级锁抢占锁资源
偏向锁标识
访问synchronzed代码块
10重量级锁
线程2没有申请到锁,申请锁撤销
相等

收藏

收藏
0 条评论
下一页