AQS ( Abstract Queued Synchronizer )是一个抽象的队列同步器,通过维护一个共享资源状态( Volatile Int State )和一个先进先出( FIFO )的线程等待队列来实现一个多线程访问共享资源的同步框架。
AQS 主要有三大属性分别是 Node head ,Node tail,int state,其中state 表示同步状态0是未持有,锁重入则累加,head为等待队列的头结点,tail 指向队列的尾节点。
Node结点属性
其中waitStatus常量意义如下: