轻量级锁竞争升级
2022-07-06 23:19:26 9 举报
synchronized 轻量级锁的竞争
作者其他创作
大纲/内容
_WaitSet
自旋尝试获取锁
_EntryList
访问同步代码块
Mark Wrod升级为轻量级锁,且指向线程1
Mark Word
执行完同步体,CAS修改Mark Word
CAS修改Mark Word指向线程2
线程1
10
升级为重量级锁,修改Mark Word
唤醒阻塞的线程
Object Mark Word
_onwer
将Mark Word复制到栈中的Lock Record中
线程阻塞被挂起
hashcode | age | 0 | 01
自旋一定次数
CAS修改Mark Word指向线程1
无锁
线程2
成功
重量级锁
失败,因为已经指向了线程1
放入
失败,因为线程2已经修改了Mark Wrod
指向monitor指针 | 10
轻量级锁
ObjectMonitor
执行同步代码块
指向
lock record 指针 | 00
0 条评论
下一页