Java 中的锁与同步
Java 对象内容:
长度 | 内容 | 说明 |
---|---|---|
32/64bit | Mark Word | 存储对象的hashCode或锁信息等 |
32/64bit | Class Metadata Address | 存储到对象类型数据的指针 |
32/64bit | Array length | 数组的长度(如果当前对象是数组 |
MarkWorld 内容
Java 中的锁
公平锁与非公平锁
- 公平和非公平锁的队列都基于锁内部维护的一个双向链表,表结点Node的值就是每一个请求当前锁的线程。公平锁则在于每次都是依次从队首取值,先进先出。
- 锁的实现方式是基于如下几点:
- 表结点
Node
和状态state
的volatile
关键字。
- 表结点