什么是AQS?
全称是 AbstractQueuedSynchronizer,即抽象队列同步器。它是 构建锁或者其他同步组件的基础框架
AQS常见的实现类
- ReentrantLock 阻塞式锁
- Semaphore 信号量
- CountDownLatch 倒计时锁
AQS-基本工作机制
多个线程共同去抢这个资源是如何保证原子性的呢?
cas设置 state 状态,保证操作的原子性
总结(什么是AQS)
- 是多线程中的队列同步器。是一种锁机制,它是 做为一个基础框架使用的,
像ReentrantLock
、Semaphore
都是基于AQS实现的 - AQS内部维护了一个 先进先出的双向队列,队列中存储的排队的线程
- 在AQS内部还有一个属性
state
,这个state就相当于是一个资源,默认是0
(无锁状态),如果队列中的有一个线程修改成功了state为1
,则当前线程就相等于 获取了资源 - 在对state修改的时候使用的
cas
操作,保证多个线程修改的情况下原子性
评论( 0 )