当前位置:   article > 正文

AQS-节点的起始状态0是怎么来的,为什么要有0这个状态?_aqs waitstatus=0

aqs waitstatus=0

首先看下代表节点状态的是哪个字段:
在这里插入图片描述
这时候可以发现waitStatusint类型,默认值自然就为0了。

所以这时候就可以先知道,为什么节点的起始状态是0。那么接下来看一段代码:
在这里插入图片描述
在这里插入图片描述
从以上截图可以发现,当ws的值是0时,会走进else中的逻辑,通过CAS把0设置为-1,那为什么不一开始就设置为-1呢,还要多出这一步?

这里分享一个简单的理解思路,状态存在即是合理,会不会有一些方法,是在节点状态值为0时需要调用的?而正是因为有一些方法是需要在状态值为0时被调用,所以才会保留有0这个状态。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/149149
推荐阅读
  

闽ICP备14008679号