短视频
2026/6/11大约 2 分钟面试题面试题
来源:短视频
现在这种行情,AQS 是什么都不知道,就敢去面试?我只能说你可能真的需要补补课了。 哈喽,大家好,我是JJ
AQS,全称 AbstractQueuedSynchronizer,是Java并发编程中的基石。
作为一个抽象类,它为构建锁和其他同步器提供了一个高效、灵活的框架。
AQS通过两种主要的锁机制——排他锁和共享锁——来控制线程对共享资源的访问。
排他锁,又称为独占锁,确保在多个线程竞争同一资源时,只有一个线程能够访问该资源。
AQS内部使用同步状态来管理这一过程:状态为0表示锁空闲,大于0表示锁被占用,小于0 就表示有线程在等待。
而共享锁则允许多个线程同时访问资源,但控制权只能由一个线程持有。 AQS实现共享锁的方式与排他锁相似,同样依赖于同步状态。
AQS还采用了FIFO等待队列来管理线程,确保它们有序地等待和获取锁资源。当锁被释放时,等待队列中的下一个线程才会获得锁然后继续执行。
要使用AQS,需要继承该类并实现关键的抽象方法,这些方法定义了锁的获取、释放、阻塞和唤醒逻辑。
总的来说,AQS是Java并发编程中不可或缺的组件,它为线程同步提供了强大的支持。