1.什么是AQS
AQS,全称 AbstractQueuedSynchronizer,位于 java.util.concurrent.locks 包下。
是JDK 1.5提供的一套用于实现阻塞锁和一系列依赖FIFO等待队列的同步器(First Input First Output 先进先出)的框架实现。
是除了java自带的 synchronized 关键字之外的锁机制。
我们常用的 ReentrantLock、Semaphore、CountDownLatch、CyclicBarrier等并发类均是基于AQS来实现的,具体用法是通过继承AQS实现其模板方法,然后将子类作为同步组件的内部类。