抽象队列同步器

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

posted @ 2022-09-24 20:52  半条咸鱼  阅读(20)  评论(0)    收藏  举报