概述
使用:用于修饰实例方法、静态方法时,隐式指定锁对象;用于代码块时,显示指定锁对象
作用域:对象锁、类锁、分布式锁
特性:可重入、独享、悲观锁
锁优化:锁消除
如何记录加锁状态
默认情况下JVM锁会经历:未锁定 -> 偏向锁 -> 轻量级锁 -> 重量级锁 这四个状态
对象在堆里面是如何存储的?
![]()
什么是Mark Word
![]()
加锁过程
偏向锁
在JDK6以后,默认已将开启偏向锁优化,通过JVM参数-XX:-UseBiasedLocking来禁用偏向锁。若偏向锁开启,当只有一个线程抢锁时,可以获得到偏向锁