AQS解析
- AQS是什么?
- AbstractQueuedSynchronizer(抽象队列同步器)
- 通过模板方法为子类提供了多种自定义的FIFO队列实现
- AQS通过volatile int state以及CLH队列实现同步;
- CLH队列的head的状态对后继节点的影响很大
- AQS实现如下(图片CV的):
- 只有队头才能获取锁
- AQS结构图如下:
- 由以上结构图可以看到
- AQS作为基类提供模板方法为Lock、ThreadPool、Semaphore实现队列提供了队列的自定义实现
- AQS的方法
- tryAcquire(int arg)排它模式,尝试获取锁
- tryRelease(int arg)排它模式,尝试释放锁
- 等......