网页设计服装网站建设谷歌广告联盟怎么做
前言:面试高频的AQS问题大多。本文将以实战面试角度出发,将面试官喜欢问的一些问题罗列出来。
文章目录
- AQS
- AQS定义
- 底层实现
- 独占锁举例
- 底层实现独占锁
- 超时获取锁
- 共享锁举例
- 共享锁实现原理
- 作者辟谣
AQS
AQS定义
AQS的全称是AbstractQueuedSynchronizer,也就是抽象队列同步器,它是在java.util.concurrent.locks包下的,也就是JUC并发包。
同步器自身没有实现任何同步接口,它仅仅是定义了同步状态获取和释放的方法,提供自定义同步组件使用,同步器既可以支持独占式地获取同步状态,也可以支持共享式地获取同步状态。大部分的显示锁的底层都用到了AQS,比如只有一个线程能执行ReentrantLock独占锁,又比如多个线程可以同时执行共享锁Semaphore、CountDownLatch、ReadWriteLock、CyclicBarrier。
底层实现
AQS使用模板方法模式,使用者继承A