企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
AQS中最基本的数据结构——Node,Node即为CLH变体队列中的节点 ![](https://img.kancloud.cn/10/69/1069a30c1377ad83feadcb409d2716d0_1675x193.png) 解释一下几个方法和属性值的含义: | 方法和属性值 | 含义 | | --- | --- | | waitStatus | 当前节点在队列中的状态 | | thread | 表示处于该节点的线程 | | prev | 前驱指针 | | predecessor | 返回前驱节点,没有的话抛出npe | | nextWaiter | 指向下一个处于CONDITION状态的节点(由于本篇文章不讲述Condition Queue队列,这个指针不多介绍) | | next | 后继指针 | 线程两种锁的模式: | 模式 | 含义 | | --- | --- | | SHARED | 表示线程以共享的模式等待锁 | | EXCLUSIVE | 表示线程正在以独占的方式等待锁 | waitStatus有下面几个枚举值: | 枚举 | 含义 | | --- | --- | | 0 | 当一个Node被初始化的时候的默认值 | | CANCELLED | 为1,表示线程获取锁的请求已经取消了 | | CONDITION | 为-2,表示节点在等待队列中,节点线程等待唤醒 | | PROPAGATE | 为-3,当前线程处在SHARED情况下,该字段才会使用 | | SIGNAL | 为-1,表示线程已经准备好了,就等资源释放了 |