图解锁升级过程

锁升级过程图解

1、图解锁升级

  锁信息记录在markword中:

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

对应如下:

 

2、案例

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

需要添加依赖:

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

  运行后,结果如下:

 

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

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

 

Over......

 

posted @ 2021-08-15 23:16  额是无名小卒儿  阅读(120)  评论(0编辑  收藏  举报