图解锁升级过程

锁升级过程图解

1、图解锁升级

  锁信息记录在markword中:

  • 普通对象:001;
  • 匿名偏向,偏向锁:101;
  • 轻量级锁:00;
  • 重量级锁:10;

对应如下:

 

2、案例

为了证明以上的过程,我们可以使用一些工具来观察,在这里我们使用JOL(Java Object Layout)。

需要添加依赖:

以下面的代码为例,就是一个生成一个对象的代码:

  运行后,结果如下:

 

图中红色部分表示锁,001是普通对象,无锁态。

前8个字节就是markword,第9-12个字节是指针。第13-16是补充对齐。

Over......

原文地址:https://www.cnblogs.com/gjmhome/p/15145573.html