在Java并发包java.util.concurrent中可以看到,不少源码是基于AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是Java并发包的基础工具类,是实现ReentrantLock.CountDownLatch.Semaphore.FutureTask 等类的基础. AQS的主要使用方式是继承,子类通过继承AQS并实现它的抽象方法来管理同步状态,在抽象方法中免不了要对同步状态进行更改,这时就需要使用AQS提供的3个方法(getState().s…