锁消除锁消除是指虚拟机即时编译器在运行时 , 对一些代码上要求同步 , 但被检测到不可能存在共享数据竞争的锁进行消除 。主要根据逃逸分析 。
程序员怎么会在明知道不存在数据竞争的情况下使用同步呢?很多不是程序员自己加入的 。
锁粗化原则上 , 同步块的作用范围要尽量小 。但是如果一系列的连续操作都对同一个对象反复加锁和解锁 , 甚至加锁操作在循环体内 , 频繁地进行互斥同步操作也会导致不必要的性能损耗 。
锁粗化就是增大锁的作用域 。
轻量级锁在没有多线程竞争的前提下 , 减少传统的重量级锁使用操作系统互斥量产生的性能消耗 。
偏向锁消除数据在无竞争情况下的同步原语 , 进一步提高程序的运行性能 。即在无竞争的情况下 , 把整个同步都消除掉 。这个锁会偏向于第一个获得它的线程 , 如果在接下来的执行过程中 , 该锁没有被其他的线程获取 , 则持有偏向锁的线程将永远不需要同步 。
经验总结扩展阅读
- 2023年9月15日适合入宅吗 2023年9月15日入宅黄道吉日
- 2023年农历八月初一宜祭祖吗 2023年9月15日祭祖黄道吉日
- JVM学习笔记——垃圾回收篇
- 2023年1月27日取蜂蜜行吗 2023年1月27日适合取蜂蜜吗
- 2023年农历正月初六安装房门吉日 2023年1月27日是安装房门的黄道吉日吗
- 2023年1月27日举办成人仪式行吗 2023年1月27日举办成人仪式吉日一览表
- 银手镯变黑是生病了吗?
- 九州缥缈录铁皇结局是什么?
- 向前是什么电视剧的男主角?
- 长脸型适合什么样的眼镜?