<ul><li><font color="#f15a23">Node节点</font></li></ul>
1、wateStatus<br>
<ul><li>CANCELLED:1 说明该线程中断或者等待超时,需要<font color="#c41230">移除该线程</font></li></ul>
<ul><li>SIGNAL: -1 处于唤醒状态,只要<font color="#c41230">前继结点释放锁,就可执行该线程</font></li></ul>
<ul><li>CONDITION: -2 与<font color="#c41230">Condition(条件队列)</font>相关,该标识的结点处于等待队列中;当其他线程调用了<font color="#c41230">Condition的signal()方法</font>后,CONDITION状态的结点将<font color="#f15a23">从等待队列转移到同步队列中</font>,<font color="#f15a23">等待获取同步锁</font>。</li></ul>
<ul><li>PROPAGATE: -3 在<font color="#c41230">共享模式</font>中,该状态标识结点的线程处于<font color="#c41230">可运行状态</font>。</li></ul>
2、prev(<font color="#f15a23">阻塞队列</font>):是同步线程队列中保存的<font color="#c41230"><b>前置节点</b></font>的地址。
3、next(<font color="#f15a23">阻塞队列</font>):是同步线程队列中保存的<b><font color="#c41230">后续节点</font></b>的地址。
4、thread:<font color="#c41230">同步线程队列</font>主要存储的<font color="#c41230">线程信息</font>。
5、nextWaiter(<font color="#f15a23">条件队列</font>):条件队列是使用单向列表保存的,用<br>nextWaiter来连接。
子主题<br>
<ul><li><font color="#f15a23">2种队列</font></li></ul>
1、<font color="#c41230">同步队列</font>
原理:当线程获取资源失败后,就进入同步队列的<font color="#c41230"><b>尾部保持自旋等待;</b></font>不断判断自己<font color="#c41230">是否是链表的头节点;</font>如果是<font color="#f15a23">头节点,就不断参试获取资源</font>,获取<font color="#c41230">成功后则退出同步队列</font>。
2、<font color="#c41230">条件队列</font>
原理:是为Lock实现的一个基础同步器,并且一个线程<font color="#c41230">可能会有多个条件队列</font>,只有在使用了<font color="#c41230">Condition才会存在条件队列</font>。