锁优化
Synchronized是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的。而操作系统实现线程之间的切换这就需要从用户态转换到核心态,这个成本非常高,状态之间的转换需要相对比较长的时间,这就是为什么Synchronized效率低的原因。因此,这种依赖于操作系统Mutex Lock所实现的锁我们称之为“重量级锁”。
JDK中对Synchronized做的种种优化,其核心都是为了减少这种重量级锁的使用。
为了减少获得锁和释放锁所带来的性能消耗,提高性能,JDK使用了锁消除、锁膨胀等策略,并引入了“轻量级锁”和“偏向锁”的概念来减少重量级锁的使用。
仅是学习笔记,难免出错,望不吝指点