并发编程之AQS初探
Java并发编程核心在于java.concurrent.util包,而juc当中的大多数同步器实现都是围绕着共同的基础行为,比如等待队列、条件队列、独占获取、共享获取等,而这个行为的抽象就是基于AbstractQueuedSynchronizer,简称AQS。 AQS具备特性 •阻塞等待队列 •共享/独占 •公平/非公平 •可重入 •允许中断 可以说,AQS贯穿了整个并发包设计,是juc的核心,对于并发编程实现的理解至关重要。 AQS是什么 JDK源码对AQS有十分具体的解释,下面这段英文摘自java.util.concurrent.locks包下的AbstractQueuedSynchronizer.java源码文件。 * Provides a framework for implementing blocking locks and related * synchronizers ( semaphores , events , etc ) that rely on * first - in - first - out ( FIFO ) wait queues . This class is designed to * be a useful basis for most kinds of synchronizers that rely on a * single atomic