抽象队列同步器
AQS 原理
1、AbstractQueuedSynchronizer
2、阻塞式锁、相关的同步器工具的框架
3、state 属性表示资源的状态
(1)子类需要定义如何维护这个状态,控制如何获取锁、释放锁
(2)getState:获取 state 状态
(3)setState:设置 state 状态
(4)compareAndSetState:CAS 机制设置 state 状态
(5)独占模式:只有一个线程能够访问资源
(6)共享模式:允许多个线程访问资源
4、提供基于 FIFO 的等待队列,类似于 Monitor 的 EntryList
5、条件变量来实现等待、唤醒机制,支持多个条件变量,类似于 Monitor 的 WaitSet
6、子类主要实现方法(默认抛出 UnsupportedOperationException)
(1)tryAcquire
(2)tryRelease
(3)tryAcquireShared
(4)tryReleaseShared
(5)isHeldExclusively

浙公网安备 33010602011771号