并发JavaJava 并发锁
- 分类
- Java 并发
- 难度
- 未设置
- 来源数
- 1
- 更新时间
- 2026/03/28 21:25
答案
AQS就是AbstractQueueSynchronizer,是一个抽象队列同步器,它是一个抽象类,主要用来构建锁和同步器,它能够高效的构建出大量的同步器。像ReentrantLock、ReentrantReadWriteLock、同步队列等都是基于AQS的。AQS的核心思想就是,当一个线程访问共享资源时,如果共享资源没有被占用,那么就将该线程设置为有效工作线程,并对资源加锁进行访问。如果访问失败,则需要将线程添加到等待队列当中,AQS利用CLH队列来实现一整套的线程阻塞等待和唤醒时的锁分配机制。然后它利用一个volatile修饰的state变量来表示锁的状态,0则表示未锁定,大于0表示已锁定。
相关题目(5)
Java 并发并发JavaJava 并发锁
Java 并发并发JavaJava 并发
Java 并发并发JavaJava 并发
Java 并发并发JavaJava 并发
有哪些支持并发的集合?共源 1
Java 并发并发JavaJava 并发
元信息
审核状态: active
关联来源: 1
来源面经题(0)
这道题目前没有手动沉淀的面经题来源。
来源(1)
Java八股(并发).md
knowledge_noteQuestion 102: 什么是AQS?请介绍一下AQS。
Source answer: AQS就是AbstractQueueSynchronizer,是一个抽象队列同步器,它是一个抽象类,主要用来构建锁和同步器,它能够高效的构建出大量的同步器。像ReentrantLock、ReentrantReadWriteLock、同步队列等都是基于AQS的。AQS的核心思想就是,当一个线程访问共享资源时,如果共享资源没有被占用,那么就将该线程设置为有效工作线程,并对资源加锁进行访问。如果访问失败,则需要将线程添加到等待队列当中,AQS利用CLH队列来实现一整套的线程阻塞等待和唤醒时的锁分配机制。然后它利用一个volatile修饰的state变量来表示锁的状态,0则表示未锁定,大于0表示已锁定。
Reviewed answer: AQS是AbstractQueuedSynchronizer,是用于构建锁和同步器的抽象队列同步器。它通过volatile的state表示同步状态,线程获取资源失败时会被封装为节点加入CLH等待队列,通过阻塞、唤醒和CAS操作完成同步控制。ReentrantLock、ReentrantReadWriteLock等都基于AQS实现。