32位JVM中 mark word结构信息:
| 锁状态 | 25bit | 4bit | 1bit | 2bit | |
| 23bit | 2bit | 是否偏向锁 | 锁标志位 | ||
| 无锁 | 对象的HashCode | 分代年龄 | 0 | 01 | |
| 偏向锁 | 线程ID | Epoch | 分代年龄 | 1 | 01 |
| 轻量级锁 | 指向栈中锁记录的指针 | 00 | |||
| 重量级锁 | 指向重量级锁的指针 | 10 | |||
| GC标记 | 空 | 11 | |||
注意:无锁和偏向锁的锁标志位都是01,利用额外1bit区分是否偏向锁
学习java synchronized关键字时 会用到这部分知识
32位JVM中 mark word结构信息:
| 锁状态 | 25bit | 4bit | 1bit | 2bit | |
| 23bit | 2bit | 是否偏向锁 | 锁标志位 | ||
| 无锁 | 对象的HashCode | 分代年龄 | 0 | 01 | |
| 偏向锁 | 线程ID | Epoch | 分代年龄 | 1 | 01 |
| 轻量级锁 | 指向栈中锁记录的指针 | 00 | |||
| 重量级锁 | 指向重量级锁的指针 | 10 | |||
| GC标记 | 空 | 11 | |||
注意:无锁和偏向锁的锁标志位都是01,利用额外1bit区分是否偏向锁
学习java synchronized关键字时 会用到这部分知识
相关文章: