图解锁升级过程
锁升级过程图解
1、图解锁升级
锁信息记录在markword中:
- 普通对象:001;
- 匿名偏向,偏向锁:101;
- 轻量级锁:00;
- 重量级锁:10;
对应如下:
2、案例
为了证明以上的过程,我们可以使用一些工具来观察,在这里我们使用JOL(Java Object Layout)。
需要添加依赖:
以下面的代码为例,就是一个生成一个对象的代码:
运行后,结果如下:
图中红色部分表示锁,001是普通对象,无锁态。
前8个字节就是markword,第9-12个字节是指针。第13-16是补充对齐。
Over......