- 博客(3)
- 收藏
- 关注
原创 面试:关于对多线程中 synchronized 锁升级的原理的理解
在锁对象的对象头里面有一个 threadid 字段,在第一次访问的时候 threadid 为空,jvm 会给该对象一个偏向锁,并将 threadid 设置为其线程 id,当访问的时候会先判断 threadid 是否与线程 id 一致,如果一致则可以直接使用此对象,如果不一致,则升级偏向锁为轻量级锁,通过自旋循环一定次数来获取锁,执行一定次数之后,如果还没有正常获取到要使用的对象,此时就会把锁从轻量级升级为重量级锁,此过程就构成了 synchronized 锁的升级。此时,线程会进入阻塞状态,直到锁被释放。
2025-03-13 21:48:33
335
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人