轻量级锁的问题

来源:9-3 synchronized底层实现原理-2

Meteor流星

2021-12-07

老师您好,当线程A获取到锁,并且此时锁已经是轻量级锁,A线程还在执行同步代码,未释放锁。此时,线程B来获取锁,这个时刻,线程B会有哪些行为,B线程能修改锁对象的Mark Word吗,如果能的话,是只修改锁标志位为重量级锁吗?B在此时会有通过CAS去更改Mark Word指向自己的行为吗?

写回答

1回答

翔仔

2021-12-08

同学好,B是可以修改mark word的,把锁标志改成重量级锁,改成重量级锁的前提b通过自旋尝试去更改Mark Word指向自己指针失败后才有的行为,而失败的原因是a已经占有了锁

0
1
Meteor流星
明白了,老师,感谢!
2021-12-08
共1条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程