Node节点时,会有尝试设置外,它仅能通过方法enq修改,以添加新的等待节点()
state: 同步状态,不同同步器方法,标识含义不同
spinForTimeoutThreshold: 如果等待时间小于这个值...为了避免竞争,acquire方法必须首先标识它们需要一个信号,然后重试原子acquire,然后在失败时阻塞
CANCELLED(1): 此节点因超时或中断而取消....,
即使此后有其他操作介入也是如此
0: 默认值
waitStatus以数字形式排列以简化使用,非负值表示节点不需要发出信号,所以,大多数代码不需要检查特定的值,只需要检查符号
对于正常同步节点...,该字段初始化为0;对于条件节点,该字段初始化为CONDITION.它是使用CAS修改的,(或者在可能的情况下,使用无条件的volatile写入)
nextWaiter: 等待队列的后继节点,或者标识共享模式...因为条件队列仅在保持独占模式时才被访问,我们只需要一个简单的链接队列来保存等待条件的节点,然后将它 们转移到队列中重新获取,并且由于等待条件只能是独占的,所以我们当节点是共享模式时我们使用这个值标识共享模式