Synchronized锁
2021-10-09 18:03:18 3 举报
Synchronized锁
作者其他创作
大纲/内容
1.线程1第一次加锁
线程4
ClassMetadataAddress
重量级锁标记
实例变量
线程3在自旋时候线程4突然进来
线程1
1:加锁成功,加锁次数+1
锁记录指针
count=1
对象头
entrylist
栈帧
MarkWord
无锁标记
锁对象
线程3
偏向锁线程指针
锁记录
2:记录加锁的线程
3.加锁成功
markdown
6.复制一份到锁记录中
10.执行cas框加锁操作
4.再次加锁,发现是自己的锁,直接成功
owner=线程3
线程2
偏向锁标记
8.复制一份到锁记录中
锁冲突导致锁升级
7.指向锁记录
2.cas记录线程和修改锁标记
升级成轻量级锁
5.发现已有线程持有偏向锁
膨胀未重量级锁
轻量级锁标记
object monitor
9.锁记录指针多次cas修改失败
收藏
0 条评论
下一页