1. synchronized的锁存储以及锁分类
synchronized的存储位置: 对象MarkWork
-
JVM的ObjectHeader信息
- MarkWord: hashcode(哈希code) + age(分代年龄age) + biased_lock(偏向锁标志) + lock (锁标志)
- Class Metadata Address(类元信息地址)
- Array Length: 如果对象是一个数组类型,则存储数组长度
-
MarkWord信息
-
JVM中synchronized使用的锁
- 无锁: 严格意义上应该说是正常对象,包含hashcode + 分代年龄age + 无偏向锁标志 + 锁状态标志
- 轻量级锁: 栈记录的地址 + 锁状态
- 监视器锁: 对象/监视器地址 + 锁状态