锁分类及标识
锁状态 | 25位 | 31位 | 1位 | 4bit | 1bit_偏向锁位 | 2bit_锁标志位1 | 2bit_锁标志位2 |
---|---|---|---|---|---|---|---|
无锁态(new) | unused | hashCode(如果有调用) | unused | 分代年龄 | 0 | 0 | 1 |
锁状态 | 54位 | 2位 | 1位 | 4bit | 1bit_偏向锁位 | 2bit_锁标志位1 | 2bit_锁标志位2 |
---|---|---|---|---|---|---|---|
偏向锁 | 当前线程指针JavaThread | Epoch | unused | 分代年龄 | 1 | 0 | 1 |
锁状态 | 62位 | 2bit_锁标志位1 | 2bit_锁标志位2 |
---|---|---|---|
自旋锁 | 指向线程栈中Lock Record的指针 | 0 | 0 |
轻量级锁 | 指向线程栈中Lock Record的指针 | 0 | 0 |
重量级锁 | 指向互斥量(重量级锁) | 1 | 0 |
GC标记信息 | CMS过程用到的标记信息 | 1 | 1 |