AbstractQueueSynchronized抽象队列同步器,
抽象队列同步器中主要维护了一个双向队列, 定义了一个队列的头结点head和尾结点tail,当前资源的拥有者owner,当前占用的状态数state.通过把等待线程安全的插入到队尾中实现等待队列,
当执行线程释放资源(怎么才算释放资源成功,抽象队列抽象出TryRealse等方法来让同步组件的自定义者来自行重写定义)时会获取下一个节点,并唤醒节点中的线程,节点中的线程自旋判断下自己的前节点是否是head,如果是则尝试获取同步状态(怎么才算获取同步状态成功,抽象队列抽象出TryAquire等方法来让同步组件的自定义者来自行重写实现),如果不是,则再进入等待状态.
总的来说,AQS抽象出了线程的同步等待等操作,帮我们实现了线程获取不到状态应该怎么进入等待队列,获取得到状态以后应该怎么释放资源唤醒等待队列中的线程的通用操作。