概述

jdk11源码-ReentrantLock源码一文中分析了ReentrantLock源码。里面有讲述在多个线程加入队列时的AQS内部状态:
在这里插入图片描述
==简单来说:condition的await和signal操作就是将node节点在这两个队列中转移的过程,这里重点关注waitstatus和nextwaiter两个字段。后面会逐行代码分析==
在这里插入图片描述

创建Condition

一个ReentrantLock可以创建多个Condition
Condition condition = lock.newCondition();
实际是创建一个Condition 对象,Condition 的定义在AbstractQueuedSynchronizer中。

nextWaiter

在之前的文章中介绍了,一个node对象中有两个重要的对象属性:

volati
收藏 打印