偏向锁:
hotspot的开发者发现大部分情况,资源都是被同一个线程所占用,因此为了节省线程切换的资源从而引入偏向锁
偏向锁定义:
先理解一个基本概念:普通对象头有2个字宽=8个字节=64bit,数组对象的话有3个字段,多出来的那个字宽存储数组长度
长度 | 名称含义 | 解释说明 |
---|---|---|
1个字宽 | Mark Word | 锁信息和对象的hashcode |
1个字宽 | Class Metadata address | 对象数据的指针 |
1个字宽 | Array lengh | 数组长度 |
序列图:
hotspot的开发者发现大部分情况,资源都是被同一个线程所占用,因此为了节省线程切换的资源从而引入偏向锁
偏向锁定义:
先理解一个基本概念:普通对象头有2个字宽=8个字节=64bit,数组对象的话有3个字段,多出来的那个字宽存储数组长度
长度 | 名称含义 | 解释说明 |
---|---|---|
1个字宽 | Mark Word | 锁信息和对象的hashcode |
1个字宽 | Class Metadata address | 对象数据的指针 |
1个字宽 | Array lengh | 数组长度 |
序列图: