AQS2

AQS2

AQS使用一个volatile的int类型的成员变量来表示同步状态,通过内置的 FIFO队列来完成资源获取的排队工作将每条要去抢占资源的线程封装成 一个Node节点来实现锁的分配,通过CAS完成对State值的修改。

AQS2

AQS的同步状态state成员变量  零说明没有资源占用,自由状态可以办理  大于等于1 有线程占用资源

AQS的CLH队列

AQS2

 

Node内部结构

AQS2

AQS2


   AQS2        

AQS2                        
         

AQS同步队列的基本结构

AQS2


                         AQS底层是怎么排队的 :是用LockSupport.park()来进行排队的