赞
踩
首先看下代表节点状态的是哪个字段:
这时候可以发现waitStatus是int类型,默认值自然就为0了。
所以这时候就可以先知道,为什么节点的起始状态是0。那么接下来看一段代码:
从以上截图可以发现,当ws的值是0时,会走进else中的逻辑,通过CAS把0设置为-1,那为什么不一开始就设置为-1呢,还要多出这一步?
这里分享一个简单的理解思路,状态存在即是合理,会不会有一些方法,是在节点状态值为0时需要调用的?而正是因为有一些方法是需要在状态值为0时被调用,所以才会保留有0这个状态。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。