1. 概述
(1)AbstractQueuedSynchronizer
抽象同步队列简称AQS。
(2)它是实现同步器的基础组件,并发包中锁的底层就是使用AQS
实现的。
(3)AQS
定义了一套多线程访问共享资源的同步框架,许多同步类的实现都依赖于它,例如常用的:
Synchronized
、ReentrantLock
、ReentrantReadWriteLock
、Semaphore
、CountDownLatch
等。
(4)该框架下的锁会先尝试以CAS
乐观锁去获取锁,如果获取不到,则会转为悲观锁(如RetreenLock
)。