文章目录
- 一、什么是AQS
- 二、AQS的原理
- 三、state:状态
- 四、AQS共享资源的方式:独占式和共享式
一、什么是AQS
AQS(Abstract Queued Synchronizer)是一个抽象的队列同步器,通过维护一个共享资源状态(Volatile Int State)和一个先进先出(FIFO)的线程等待队列来实现一个多线程访问共享资源的同步框架。
二、AQS的原理
AQS为每个共享资源都设置一个共享资源锁,线程在需要访问共享资源时首先需要获取共享资源锁,如果获取到了共享资源锁,便可以在当前线程中使用该共享资源,如果获取不到,则将该线程放入线程等待队列,等待下一次资源调度,具体的流程如图3-14所示。
许多同步类的实现都依赖于AQS,例如常用的ReentrantLock、Semaphore