AQS 简介
AQS 是 AbstractQueuedSynchronizer 的缩写,即 队列同步器,顾名思义,其主要作用是处理同步。它是并发锁和很多同步工具类的实现基石(如 ReentrantLock、ReentrantReadWriteLock、CountDownLatch、Semaphore、FutureTask 等)。
**AQS 提供了对锁和同步器的通用能力支持 **。在 java.util.concurrent.locks 包中的相关锁(常用的有 ReentrantLock、 ThreadPoolExecutor)都是基于 AQS 来实现。这些锁都没有直接继承 AQS,而是定义了一个 Sync 类去继承 AQS。为什么要这样呢?因为锁面向的是使用用户,而同步器面向的则是线程控制,那么在锁的实现中聚合同步器而不是直接继承 AQS 就可以很好的隔离二者所关注的事情。
2019/12/26大约 9 分钟