轻量级锁的问题
来源:9-3 synchronized底层实现原理-2
Meteor流星
2021-12-07
老师您好,当线程A获取到锁,并且此时锁已经是轻量级锁,A线程还在执行同步代码,未释放锁。此时,线程B来获取锁,这个时刻,线程B会有哪些行为,B线程能修改锁对象的Mark Word吗,如果能的话,是只修改锁标志位为重量级锁吗?B在此时会有通过CAS去更改Mark Word指向自己的行为吗?
写回答
1回答
-
同学好,B是可以修改mark word的,把锁标志改成重量级锁,改成重量级锁的前提b通过自旋尝试去更改Mark Word指向自己指针失败后才有的行为,而失败的原因是a已经占有了锁
012021-12-08