| title |
Java 并发编程专题:线程、锁、JMM、CAS、AQS、线程池与虚拟线程 |
| description |
Java 并发编程面试与学习路线,涵盖线程、锁、JMM、CAS、AQS、ReentrantLock、ThreadLocal、线程池、CompletableFuture 和虚拟线程。 |
| category |
Java |
| tag |
|
| sitemap |
| changefreq |
priority |
weekly |
0.9 |
|
| head |
meta |
| name |
content |
keywords |
Java并发,Java并发面试题,JMM,CAS,AQS,ReentrantLock,ThreadLocal,线程池,CompletableFuture,并发容器,Atomic,虚拟线程 |
|
|
|
Java 并发编程是后端开发和面试中最重要、也最容易混淆的模块之一。学习并发不能只背 API,要把线程生命周期、锁机制、内存模型、原子操作、线程池和并发工具类放在同一条主线上理解。
- 想系统学习 Java 并发编程的后端开发者。
- 准备线程、锁、JMM、CAS、AQS、线程池等面试题的同学。
- 已经在项目中使用多线程,但对死锁、线程池参数、ThreadLocal 泄漏等问题不够熟的读者。
- 想理解并发容器、CompletableFuture、虚拟线程等工程实践能力的工程师。
- 线程创建、生命周期、上下文切换、线程安全和常见并发问题。
synchronized、volatile、ReentrantLock、乐观锁、悲观锁的适用边界。
- JMM、happens-before、指令重排、可见性、原子性和有序性。
- CAS、Atomic 原子类、AQS、并发容器和阻塞队列的底层思路。
- 线程池核心参数、拒绝策略、任务队列、参数配置和生产实践。
- CompletableFuture、ThreadLocal、虚拟线程在真实项目中的使用方式和风险。
- Java并发常见面试题总结(上):先建立线程、锁和线程安全的基础问题清单。
- Java并发常见面试题总结(中) 和 Java并发常见面试题总结(下):继续补齐 JMM、CAS、AQS、线程池和并发工具。
- 乐观锁和悲观锁详解、CAS 详解、JMM(Java 内存模型)详解:理解并发控制的底层语义。
- AQS 详解、从ReentrantLock的实现看AQS的原理及应用:深入理解 Java 锁和同步器。
- Java 线程池详解 和 Java 线程池最佳实践:掌握生产中最常用的并发基础设施。
- 线程和进程有什么区别?线程有哪些状态?
- 什么是线程安全?如何定位死锁?
synchronized 和 ReentrantLock 有什么区别?
volatile 能保证原子性吗?它解决什么问题?
- JMM 是什么?happens-before 规则有什么用?
- CAS 有什么优缺点?ABA 问题如何解决?
- AQS 的核心思想是什么?哪些工具类基于 AQS?
- 线程池核心参数如何配置?拒绝策略如何选择?
- 为什么不建议直接使用
Executors 创建线程池?
ThreadLocal 为什么可能内存泄漏?
- CompletableFuture 默认线程池有什么风险?
- 虚拟线程适合 CPU 密集型任务吗?