AQS: AbstractQueuedSynchronizer(抽象的队列式的同步器) 原理及执行步骤(简单记录一下): 1、锁类型:独占式锁、共享式锁2、获取锁:acquire(int arg),返回state的值,返回值大于0表示获取锁成功,返回值小于0说明获取锁失败。 a、state是用volatile保证可见性的b、state表示没有线程获取锁,每次线程获取锁会用CAS方式自旋将state值加一,(重入锁、获取锁state加一,释放所state减一)c、返回值为负数表示获取锁失败,则将当前线程包装成为一个Node,并且进入CLH队列(FIFO)作为尾结点。CLH队列维护Node,前一个Node释放锁会唤醒下一个Node(利用CAS操作) 3、释放锁