AbstractQueuedSynchronizer抽象队列同步器
核心属性
state
// 同步状态private volatile int state;
volatile修饰保证state可见性。
CAS修改state方法compareAndSetState()
VarHandle提供state的底层CAS修改方法。state指向的具体值,VarHandle对象可以理解为跟state指向同一个值,但是VarHandle对象有CAS原子修改指向的值的方法。
VarHandle可以直接操作二进制字节码。
head
// 等待队列的头部,懒加载private transient volatile Node head;
tail
// 等待队列的尾部,懒加载private transient volatile Node tail;
