AbstractQueuedSynchronizer
基于AQS实现的同步器包括:ReentrantLock、Semaphore、ReentrantReadWriteLock、
CountDownLatch和FutureTask。
每一个基于AQS实现的同步器都会包含两种类型的操作,如下。
·至少一个acquire操作。这个操作阻塞调用线程,除非/直到AQS的状态允许这个线程继续
执行。FutureTask的acquire操作为get()/get(long timeout,TimeUnit unit)方法调用。
·至少一个release操作。这个操作改变AQS的状态,改变后的状态可允许一个或多个阻塞
线程被解除阻塞。FutureTask的release操作包括run()方法和cancel(…)方法。