专栏名称: 鸭哥聊Java
回复关键字:666 ,领取免费简历模板,Java面试题,Java编程视频等。本号内容涵盖Java源码,JVM源码,Dubbo源码,Spring源码,Spring Cloud微服务架构,分布式高并发架构技术,MySQL性能调优等。
今天看啥  ›  专栏  ›  鸭哥聊Java

面试官:讲一下syncronized锁升级的过程。。。

鸭哥聊Java  · 公众号  ·  · 2024-11-04 11:30
    

文章预览

今天我们来聊一聊 Java 里的“锁升级”机制。这个话题说起来很“工程”,但是锁优化确实是 JVM 提高并发性能的关键手段之一。所以今天我尽量讲得简单一点,帮大家把这个绕来绕去的“锁升级”过程搞清楚。 在 Java 里,锁的升级是一个动态优化的过程,主要经历四个阶段: 无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁 。这个过程基本上是 JVM 根据线程竞争情况来自动调整的,以便在不同的场景中获得更高效的性能。 在没有开启偏向锁的情况下,锁默认是无锁状态。JDK 1.6 之后,Java 默认启用了偏向锁,只不过会有一个偏向延迟。这个延迟时间可以通过 JVM 启动参数来设置,甚至偏向锁是否开启也可以通过参数来控制。所以“无锁”状态其实就是在还没到延迟时间或者我们手动关闭偏向锁的情况下,所有 synchronized 都是没有锁的状态。 当偏向锁开 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览