在JDK1.6以前,使用synchronized就只有一种方式即重量级锁,而在JDK1.6以后,引入了偏向锁,轻量级锁,重量级锁,来减少竞争带来的上下文切换. 锁升级主要依赖对象头中的Mark Word中的锁标志位和释放偏向锁标识位. 一般的synchronized同步锁升级步骤是:偏向锁 -> 轻量级锁 -> 重量级锁. 注意:锁只能升级,不能降级. 偏向锁 偏向锁,顾名思义是偏向某一个线程的锁,在该某个线程第一次成功锁时,会在对象头中存储所偏向的线程ID,如果下一次还是该线程获取锁,只需要…