文章目录
- 一、jdk8 markword实现表
- 二、使用工具来查看锁升级
一、jdk8 markword实现表
new -> 偏向锁 -> 轻量级锁(自旋锁、自适应自旋锁)-> 重量级锁:
- 偏向锁和轻量级锁都是用户空间完成的。
- 重量级锁是需要向内核申请的。
synchronized优化的过程和markword息息相关,markword中最低的三位代表锁状态,其中1位是偏向锁位,两位是普通锁位。
二、使用工具来查看锁升级
引入依赖:
<dependency><groupId>org.openjdk.jol</groupId><artifactId>jol-core</artifactId><version>0.9</version>
</dependency>
由上图分析可知刚new出来的对象处于无锁状态,当使用synchronized关键字后处于轻量级锁状态。