AQS中那些不得不说的理论知识

2.2 next

同步队列的后继节点,条件队列没有这个概念。

2.3 thread

竞争资源的线程。

2.4 nextWaiter

条件队列的下一个节点,同步队列没有这个概念。

2.5 waitStatus

队列中节点的等待状态。

  • static final int CANCELLED = 1; 此节点的线程被取消 独占模式 共享模式

  • static final int SIGNAL = -1; 此节点的后继节点线程被挂起,需要被唤醒 独占模式

  • static final int CONDITION = -2; 此节点的线程在等待信号,也表明当前节点不在同步队列中,而在条件队列中

  • static final int PROPAGATE = -3; 此节点下一个acquireShared应该无条件传播   共享模式

这四个属性就是waitStatus属性的具体状态,还有一个隐式的具体状态,即waitStatus初始化时为0。在独占模式下,我们只需要用到CANCELLED和SIGNAL,这里需要注意的是SIGNAL,它代表的不是自己线程的状态,而是它后继节点的状态,当一个节点的waitStatus被置为SIGNAL时,表明此节点的后继节点被挂起,当此节点释放锁或被取消放弃拿锁时,应该唤醒后继节点。而在共享模式时,我们会

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值