美文网首页
锁的膨胀

锁的膨胀

作者: 我是光芒万丈 | 来源:发表于2022-06-15 16:28 被阅读0次

锁得膨胀:
膨胀方向:无锁->偏向锁->轻量级锁->重量级锁

无锁:

没有锁或者不加锁的情况。

偏向锁:

适用于只有一个线程访问同步块 ,对象头中的markword关键字指向对应当前线程id.并修改标志位,再次进入或退出不再进行CAS操作.不消耗额外cpu资源,所以速度快。

轻量级锁:

适应线程交替执行同步块的过程。轻度冲突,当进入代码块时,发现对象头markword中的线程id不是自己,然后尝试使用CAS进行修改,由于自旋会消耗大量cpu资源,因此如果经过一段时间还没有获取到对象锁,后会升级为重量级锁。

重量级锁:

适应于多个线程同时访问一个同步块的情况,对象会进入锁池进行等待,直到资源占用着执行完,再次进行竞争

相关文章

  • 锁的膨胀

    锁得膨胀:膨胀方向:无锁->偏向锁->轻量级锁->重量级锁 无锁: 没有锁或者不加锁的情况。 偏向锁: 适用于只有...

  • Java锁膨胀

    前言 到这里,大家应该都知道,Java中都有哪些锁,做什么用的了; 那么,不知道大家有没有听过Java锁的膨胀机制...

  • Java核心(三)并发中的线程同步与锁

    乐观锁、悲观锁、公平锁、自旋锁、偏向锁、轻量级锁、重量级锁、锁膨胀...难理解?不存的!来,话不多说,带你飙车。 ...

  • Synchronized锁及其膨胀

    一、序言 在并发编程中,synchronized锁因其使用简单,在线程间同步被广泛应用。下面对其原理及锁升级过程进...

  • 锁状态的分析

    无锁状态-》偏向锁-》轻量级锁-》重量级锁-》锁膨胀 锁的状态总共有四种:无锁状态、偏向锁、轻量级锁和重量级锁。随...

  • Java 中的偏向锁、轻量级锁和重量级锁

    今天我们来聊聊 Synchronized 里面的各种锁:偏向锁、轻量级锁、重量级锁,以及三个锁之间是如何进行锁膨胀...

  • Java多线程之锁优化与JUC常用类

    一、synchronized的优化手段 1.1锁膨胀/升级 前面我们说过synchronized关键字加的锁既是轻...

  • synchronized的优化手段与java中的JUC

    ?1.synchronized的优化手段 ?1.1锁膨胀/升级 前面我们说过synchronized关键字加的锁既...

  • 浅谈偏向锁、轻量级锁、重量级锁

    为了换取性能,JVM在内置锁上做了非常多的优化,膨胀式的锁分配策略就是其一。理解偏向锁、轻量级锁、重量级锁的要解决...

  • Synchronized

    对象的内存布局 Mark Word Synchronized锁膨胀过程 Synchronized加锁的几种方式

网友评论

      本文标题:锁的膨胀

      本文链接:https://www.haomeiwen.com/subject/impxvrtx.html