AQS之同步工具

在前面一篇文章中,详细分析了AQS的原理,但没有涉及到AQS的使用,对于AQS我们也只是知其所以然而不止其然,只知道AQS长什么样,有什么用,是怎么实现的,但却缺少了最核心的,AQS要怎么用

在这篇文章中,我们将详细分析众多基于AQS实现的同步工具,如ReentrantLockCountdownLatch等,通过这些工具的实现来了解AQS的使用,从而打通AQS使用、分析的整个过程

阅读更多

AQS之AQS分析

接下来的这篇文章将详细分析AQS,AQS全称是AbstractQueuedSynchronizer,翻译过来是抽象队列同步器,也即AQS是一个基于队列实现的抽象同步器

AQS封装了获取锁,释放锁等操作,同时暴露一些try开头的方法交给子类来实现,通过继承AQS可以非常方便地实现一个线程安全的并发同步器,在java.util.concurrent包中的大多数高层次同步器,如CountdownLatchReentrantLock等都是通过AQS实现的

常用的基于AQS高层次同步器有如下几个

  • CountdownLatch
  • CyclicBarrier
  • Semaphore
  • ReentrantLock

这篇文章只分析AQS提供的通用逻辑实现,分析完AQS之后,后面再用新的篇章分析基于AQS的同步工具的具体实现细节

本文参考自javadoop

一行一行源码分析清楚AbstractQueuedSynchronizer

一行一行源码分析清楚 AbstractQueuedSynchronizer (二)

非常感谢大神无私地分享

阅读更多