AQS初探-Node

AQS有一个静态内部类Node,即CHL队列中的节点对象,对象中包含了前驱节点,后驱节点,等待节点的后续节点,等待获取同步状态的线程引用、等待状态。

int waitStatus:
1、CANCELLED :值为1,当线程等待超时或者被中断,则取消等待,设等待状态为-1,进入取消状态则不再变化。
2、SIGNAL :值为-1。后继节点处于等待状态,当前节点(为-1)被取消或者中断时会通知后继节点,使后继节点的线程得以运行
3、CONDITION :值为-2.当前节点处于等待队列,节点线程等待在Condition上,当其他线程对condition执行signall方法时,等待队列转移到同步队列,加入到对同步状态的获取。
4、PROPAGATE:值为-3,与共享模式相关,在共享模式中,该状态标识结点的线程处于可运行状态。
5、0状态:值为0,代表初始化状态。

Node prev:前驱节点,当节点加入同步队列的时候被设置(尾部添加)

Node next:后继节点

Node nextWaiter:Node既可以作为同步队列节点使用,也可以作为Condition的等待队列节点使用(将会在后面讲Condition时讲到)。在作为同步队列节点时,nextWaiter可能有两个值:EXCLUSIVE、SHARED标识当前节点是独占模式还是共享模式;在作为等待队列节点使用时,nextWaiter保存后继节点。

Thread thread:获取同步状态的线程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值