Java多线程面试题之AQS

AQS

AQS 提供了一个"排队+阻塞+唤醒"的标准化框架,让任何需要"多线程竞争同一个资源"的场景,都可以直接复用这套逻辑,而不需要重复造轮子。

AQS在Java并发包里的位置

AQS解决的根本问题

用一张图看懂AQS干了什么

三大核心机制

核心机制一:状态位

核心机制二:一个"候车队列",让失败者排队

核心机制三:状态牌

为什么必须用双向列表

waitStatus = SIGNAL 到底在驱动什么?

公平锁与非公平锁

ReentrantLock 可重入怎么实现?

💀 致命追问:"独占模式和共享模式在AQS里有什么区别?"

独占模式(如ReentrantLock)的tryAcquire返回boolean,一次只能一个线程持有;共享模式(如Semaphore、CountDownLatch)的tryAcquireShared返回int(剩余资源数),大于0时可以多个线程同时获取。释放时,独占模式只唤醒一个后继节点;共享模式会链式唤醒,只要还有剩余资源就不断唤醒下一个,让多个线程同时持有。

相关推荐
金玉满堂@bj8 分钟前
多环境部署方案(开发、测试、生产,搭配Tomcat\+WAR包)
java·tomcat·maven
syagain_zsx9 分钟前
算法基础篇 · 02 高精度(C++ 题解)
开发语言·c++·学习·高精度
白远山17 分钟前
无人自助健身平台搭建:从架构设计到设备联动的完整实战
java·开发语言·架构·需求分析
古法安卓26 分钟前
Android-Fork 机制详解
android·java·android studio
曹牧30 分钟前
Spring:HttpMessageConverter
java
许彰午34 分钟前
47-MetaGrid元数据表格
java·低代码·架构
wang_shu_mo_ran37 分钟前
Spring MVC的常用注解和用法(一)
java·spring·mvc
晴空蓝天44 分钟前
Spring Boot 3.5 脚手架里的 JWT + Redis 双轨会话,双端 token 隔离我是这么设计的
java·spring boot·redis
IT枫斗者枫哥1 小时前
MyBatis 列表查询优化:一页20条数据,21次SQL改成2次
java
君顾11 小时前
本地电竞服务交易系统架构设计与实战:从同城服务撮合到订单履约
java·开发语言·电竞