一、背景
Java 在 1.5 版本引入了 java.util.concurrent包,用以支持并发编程,降低并发编程的复杂性;而其中大部分的同步器(例如 lock, barriers 等等)都是基于 AbstractQueuedSynchronizer 类,一般我们称为AQS。 java.util.concurrent.locks.AbstractQueuedSynchronizer 出自 Doug Lea 带佬,他的 个人博客 上有一篇相关论文 《The java.util.concurrent Synchronizer Framework》,在我们深入研究 AQS 之前,有必要拜读一下该论文,翻译见笔者的另一篇博客《The java.util.concurrent Synchronizer Framework》原文翻译 之后结合相关源码实现进行分析。