锁优化

Posted amunote

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了锁优化相关的知识,希望对你有一定的参考价值。

Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的。而操作系统实现线程之间的切换这就需要从用户态转换到核心态,这个成本非常高,状态之间的转换需要相对比较长的时间,这就是为什么Synchronized效率低的原因。因此,这种依赖于操作系统Mutex Lock所实现的锁我们称之为“重量级锁”。

JDK中对Synchronized做的种种优化,其核心都是为了减少这种重量级锁的使用。

为了减少获得锁和释放锁所带来的性能消耗,提高性能,JDK使用了锁消除、锁膨胀等策略,并引入了“轻量级锁”和“偏向锁”的概念来减少重量级锁的使用。

以上是关于锁优化的主要内容,如果未能解决你的问题,请参考以下文章

synchronized优化手段:锁膨胀锁消除锁粗化和自适应自旋锁...

Java锁优化思路及JVM实现

Mysql优化(出自官方文档) - 第十二篇(优化锁操作篇)

线程安全与锁优化

多线程— JDK对锁优化的努力

JAVA并发之锁获取步骤及锁优化