在 Java 的并发编程中,AQS(AbstractQueuedSynchronizer) 是构建锁和同步器的核心框架。AQS 内部维护了一个 (同步状态)和一个 FIFO 的双向链表(等待队列)。 AQS 支持两种同步模式:独占模式(Exclusive) 和 共享模式(Share)。它们的根本区别在于能否有多个线程同时获取到同步资源。 以下是两者的详细对比和原理解析: --- 1. 核心概念对比 独占模式(Exclusive): 定义:同一时刻,只能有一个线程获取到同步资源。其他尝试获取资源的线程都会被阻塞并加入到等待队列中。 比喻:单人洗手间。一个人进去后门就锁上了,其他人必须在外面排队,等里面的人出来才能进去下一个。 典型应用:。 共享模式(Shared): 定义:同一时刻,可以有多个线程同时获取到同步资源(只要资源数量允许)。 比喻:有 N 个座位的阅览室。只要还有空座位,多个人可以同时进去看书;如果没有空座位了,新来的人才需要排队。 典型应用:(信号量)、(倒计时器)、 的读锁。 --- 2. 唤醒机制的区别(最关键的底层差异) 在 AQS 的等待队列中,当持有锁的线程...