JVM-内存相关

偏向锁

如果不存在线程竞争的一个线程获得了锁,那么锁就进入偏向状态,此时Mark Word的结构变为偏向锁结构,锁对象的锁标志位(lock)被改为01,偏向标志位(biased_lock)被改为1,然后线程的ID记录在锁对象的Mark Word中(使用CAS操作完成)。以后该线程获取锁时判断一下线程ID和标志位,就可以直接进入同步块,连CAS操作都不需要,这样就省去了大量有关锁申请的操作,从而也就提升了程序的性能。

批量重偏向

批量偏向锁撤销

轻量锁

重量锁

总结

锁膨胀流程

锁膨胀

锁撤销流程

锁撤销

引用

偏向锁升级验证


JVM-内存相关
https://gallrax.github.io/2023/03/27/JVM-锁相关/
作者
Gallrax
发布于
2023年3月27日
许可协议