并发的学习与使用系列 第八篇
AQS是AbstractQueuedSynchronizer的简称,是并发组件包java.util.concurrent也就是JUC(Java Util Concurrency)的核心,以及很多并发组件如前面几篇中介绍到的ReentrantLock,Condition,BlockingQueue以及线程池里使用的worker等都是基于其实现的,将很多复杂的,繁琐的并发控制过程封装起来,便于其他并发工具类来实现更多,方便的功能,其主要通过volatile和UnSafe类的原子操作(Atomic相关)来实现阻塞和同步,之前的文章并发的学习与使用系列提到里Lock的实现类ReentrantLock是一个可重入的,可实现公平的锁。下面通过ReentrantLock的源码来看看其是怎么实现的。
阅读全文