synchronized 锁升级的过程

在 Java1.6 之前的版本中,synchronized 属于重量级锁,效率低下,「锁是」 cpu 一个「总量级的资源」,每次获取锁都要和 cpu 申请,非常消耗性能。

在 「jdk1.6 之后」 Java 官方对从 JVM 层面对 synchronized 较大优化,所以现在的 synchronized 锁效率也优化得很不错了,Jdk1.6 之后,为了减少获得锁和释放锁所带来的性能消耗,引入了偏向锁和轻量级锁,「增加了锁升级的过程」,由无锁->偏向锁->自旋锁->重量级锁

synchronized 锁升级的过程_第1张图片

增加锁升级的过程主要是「减少用户态到核心态的切换,提高锁的效率,从 jvm 层面优化锁」

 

你可能感兴趣的:(jvm,java,开发语言)