锁优化

作者: 闪烁的小石头 | 来源:发表于2018-08-12 23:26 被阅读0次

高并发是从1.5到1.6的一个重要的改进,HotSpot虚拟机开发团队在这个版本上话费了大量的精力去实现各种锁优化:
1.自旋锁与自适应锁:许多应用上共享数据的锁定状态只会持续很短的时间,为了这段时间去挂起和恢复线程并不值当得。为了让线程等待,我们只需要让线程执行一个忙循环(自旋),这项技术就是所谓的自旋锁了。这个是JDK1.4.2引入的默认是关闭的,JDK1.6默认开启。
JDK 1.6引入了自适应的自旋锁,自适应意味着自旋的时间不再固定了,而是由前一次在同一个锁上的自旋时间及锁的拥有者的状态来决定。
2.锁消除是指虚拟机即时编译器在运行的时,对一些代码上要求同步,但是被检测都不可能存在共享数据竞争的锁进行消除。
3.锁粗化-但是如果一系列的连续操作都对同一个对象反复加锁和解锁,甚至加锁擦欧哦出现在循环体中的,那即使没有线程竞争,频繁地进行互斥同步操作也会导致不必要的性能损耗。如果虚拟机探测到有这样的操作对同一个对象加锁,将会把加锁同步的范围扩展(粗化)到整个操作序列的外部。
4.轻量级锁-是JDK 1.6加入的新型锁,是相对于使用操作系统互斥量来实现的传统锁而言的。是在无竞争的情况下使用CAS操作去消除使用的互斥量。
5.偏向锁-是JDK 1.6加入的新型锁,是在无竞争的情况下把整个同步都消除,连CAS操作都不做了。

相关文章

  • MS汇总

    数据库相关[MS-关于锁(乐观锁,悲观锁,行锁、表锁,共享锁,排他锁)Mysql索引优化Mysql查询优化Mysq...

  • Java高并发实战,锁的优化

    锁优化 这里的锁优化主要是指JVM 对 synchronized 的优化。 自旋锁 互斥同步进入阻塞状态的开销都很...

  • SQL锁优化问题

    关于SQL锁。SQL优化少不了SQL锁优化 1.SQL常见锁有:共享锁 作用于查询操作(Select) 2.排他锁...

  • Java虚拟机的锁优化

    JDK内部的优化策略主要包括以下几点 锁偏向 轻量级锁 自旋锁 锁消除 1.锁偏向 锁偏向是一种针对加锁操作的优化...

  • 锁优化

    锁优化 JDK6之后对锁的实现引入了大量的优化,如适应性自旋(Adaptive Spinning)、锁消除(Loc...

  • java面试题 --- 并发②

    1. JDK1.6 开始对 synchronized 做了哪些优化?使用了锁升级、锁粗化、锁消除等方式来优化性能。...

  • JVM中的锁优化

    锁优化 Jvm 在加锁的过程中,会采用自旋、自适应、锁消除、锁粗化等优化手段来提升代码执行效率。 什么是锁升级,降...

  • 锁优化(5种方法)

    转载:http://www.importnew.com/21353.html 1. 锁优化的思路和方法 锁优化的思...

  • 多线程优化--synchronized、Lock等优化

    1、synchronized (1)重量锁,轻量锁,偏向锁(synchronized自带的优化) (2)锁的粒度 ...

  • 锁优化

    高并发是从1.5到1.6的一个重要的改进,HotSpot虚拟机开发团队在这个版本上话费了大量的精力去实现各种锁优化...

网友评论

      本文标题:锁优化

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