文章目录
1.AQS简介
AQS全称Abstract Queued Synchronizer ,即抽象队列同步器。
分步理解:
抽象:抽象类,值实现一些主要逻辑,有些方法由子类实现;
队列:使用先进先出(FIFO)队列存储数据;
同步:实现了同步的功能。
AQSD的作用:是用来构建锁和同步器的框架,使用AQS能够简单高效构造出应用广泛的构造器。比如ReentrantLock、Semaphore、ReentrantReadWriteLock、SynchronousQueue、FutureTask全是基于AQS的。
2.AQS的数据结构
使用先进先出的双端队列,存储拥有线程的node节点。
3.资源共享模式
资源有两种共享模式:
(1)独占模式:资源是独占的,一次只能一个线程获取,如ReentrantLock;
(2)共享模式,资源可以同时被多个线程获取,具体的资源个数可以通过参数指定,如Semaphore/CountDownLatch.
实现两种模式的同步类:ReadWriteLock