深入理解AbstractQueuedSynchronizer(AQS)
https://www.jianshu.com/p/cc308d82cc71
这篇文章写的非常详细:
上图为AQS队列的示意图,从中可以反应出几个AQS的特点:
1.AQS所有节点都在等待中,并且在自璇状态。节点的获取策略是FIFO
2.AQS是一个双向链表,有两个指针,分别指向头节点和尾部节点
上图代表的是AQS队列的获取到锁的过程,其特点是:
1.首先获取的是头部节点,就是将头节点指针只向下一个节点然后**线性执行。
独占锁获取的过程:
图非常经典,基本是整个过程。
超时情况获取去锁:
该图中少了锁获取的分支,但是反应了根据时间判断情况的下如何获取锁的过程。
其详细信息上文链接中。。。。。