Sychronized图解锁的升级

Mark Work状态变化

在这里插入图片描述

锁的升级

在Java SE 1.6中,锁一共有4种状态,级别由低到高依次:无锁状态、偏向锁状态、轻量级锁、重量级锁。锁只能升级不能降级,目的是为了提高获得锁和释放锁的效率。

偏向锁:始终是同一个线程访问同步块

轻量级锁:没有资源竞争,多个线程交替访问同步块

重量级锁:有资源竞争,多个线程同时访问同步块

偏向锁的获得和撤销

在这里插入图片描述

轻量级锁及膨胀流程图

在这里插入图片描述