参考博文:http://blog.csdn.net/vernonzheng/article/details/8275624
http://www.importnew.com/24006.html
AQS就是java.util.concurrent.locks.AbstractQueuedSynchronizer这个类,是juc包的核心类。
AQS的核心是通过一个共享变量(volatile int state)来同步状态,变量的状态由子类来维护。AQS所要做的是:线程的阻塞和唤醒、线程阻塞队列的维护。共享变量的修改
是通过unsafe类提供的CAS操作来完成的。
AQS类的主要方法是aquire和release,还有四个方法由子类来实现:
protected boolean tryAcquire(int arg) protected boolean tryRelease(int arg) protected int tryAcquireShared(int arg) protected boolean tryReleaseShared(int arg)