多线程学习路线
约 852 字大约 3 分钟
2026-03-19
提示
本路线已经融入了 Java 21 虚拟线程特性。
可按照下列阶段逐一学习。
| 阶段 | 名称 | 目标 | 完成情况 |
|---|---|---|---|
| 阶段一 | 多线程基础 | 掌握 Java 中线程的基本概念与用法 | ✅ |
| 阶段二 | 原理与高级机制 | 掌握多线程运行的 底层原理与机制,为实战打基础 | 🚧 |
| 阶段三 | 实战应用与并发工具 | 熟练运用各种并发工具类,完成真实的多线程开发任务 | 🔜 |
| 阶段四 | 性能调优与架构设计 | 面向大型系统的并发调优与架构设计能力 | 🔜 |
| 阶段五 | 虚拟线程与现代并发 | 掌握 Java 21+ 变革级特性,实现高吞吐轻量级并发 | 🔜 |
阶段一:多线程基础(Thread 的基本能力)
目标:理解 Java 多线程编程的基本概念与核心语法,掌握线程的创建、启动、终止、协作的基础能力。
| 模块 | 内容点 |
|---|---|
| 1. 线程基础概念 | 线程 vs 进程、线程生命周期(NEW → RUNNABLE → ...)、状态转换 |
| 2. 线程创建方式 | Thread 继承、Runnable 实现、Callable + FutureTask、线程池 |
| 3. 线程启动与中止 | start()、join()、interrupt()、守护线程 |
| 4. synchronized | 用法(实例/类/代码块)、对象锁 vs 类锁、同步方法原理 |
| 5. wait/notify | 线程通信、虚假唤醒、while 等待机制 |
| 6. ReentrantLock | 可重入锁、lock()/unlock()、tryLock()、Condition |
| 7. 原子类 AtomicXXX | AtomicInteger、CAS 原理、常用方法 |
| 8. ThreadLocal | 每线程私有变量、使用场景、防内存泄漏 |
| 9. 并发容器 | ConcurrentHashMap、BlockingQueue、CopyOnWriteArrayList 等 |
| 10. 并发控制工具类 | CountDownLatch、CyclicBarrier、Semaphore |
| 11. 线程池基础 | ExecutorService、Executors.newFixedThreadPool() 等使用方式 |
| 12. Future & FutureTask | 提交异步任务、阻塞获取结果 |
| 13. CompletableFuture | 异步编排、链式调用、异常处理 |
| 总结 | 知识图谱 + 模拟实战题若干(ABC 打印、奇偶交替、生产者消费者等) |
阶段二:多线程原理与高级机制(底层实现 & 理论支撑)
目标:理解 Java 多线程底层原理,掌握 JVM 层面线程行为机制、锁机制、JMM 内存模型等,为性能优化与架构设计打下坚实基础。
笔记
加入 Java 21 虚拟线程的内容。
| 模块 | 内容点 |
|---|---|
| 1. Java 内存模型(JMM) | 可见性、有序性、原子性、happens-before 规则 |
| 2. volatile 原理 | 内存屏障、可见性保障、禁止指令重排 |
| 3. 指令重排序 | CPU 优化、重排序示例、内存屏障 |
| 4. synchronized 底层原理 | 对象头、MarkWord、锁升级流程(偏向锁 → 轻量级锁 → 重量级锁) |
| 5. CAS 与 Unsafe | CAS三元组、ABA 问题、原子类底层实现 |
| 6. AQS 同步器框架 | 队列同步器、状态管理、实现原理(ReentrantLock、CountDownLatch、Semaphore 都基于它) |
| 7. Thread 状态机 | 线程状态(NEW、RUNNABLE、WAITING、BLOCKED、TERMINATED)、转换图 |
| 8. 死锁与避免 | 死锁四个条件、破坏条件、哲学家就餐问题、死锁检测 |
| 9. happens-before 规则 | 线程间可见性保障机制、volatile 与 synchronized 的比较 |
| 10. 实验验证 | 用代码验证 JMM、volatile、锁升级、死锁模拟 |
| 11. 虚拟线程调度逻辑简介(Java 21+) | 理解平台线程与 OS 线程 1:1 映射,而虚拟线程是 M:N 映射。 |
| 12. Pinning (线程固定) 问题 (Java 21+) | 了解在 synchronized 块中阻塞会如何影响虚拟线程的调度。 |
版权所有
版权归属:FelixJY
