March 25, 2023

Condition的源码分析

这篇我们会继续讲解一个经常和ReentrantLock配套使用的组建:Condition。对于Condition来说,一切的故事开始于: public Condition newCondition() { return sync.newCondition(); } sync对象封装了该方法: final ConditionObject newCondition() { return new ConditionObject(); } ConditionObject就是Condition的实现类,该对象也在AQS的文件中。它有2个成员对象: /** First node of condition queue. */ private transient Node firstWaiter; /**…