多线程这块,很多人是“用过但说不清”:线程池提交任务会写,问到核心线程数怎么定、队列满了之后发生什么,就开始含糊;synchronized 和 ReentrantLock 都见过,真让你说 AQS 里排队和唤醒是怎么走的,就没底了。这门课面向的就是这种状态——不是零基础学 Thread,而是把 JUC 这一套工具和它背后的机制补齐。
先确认你是不是它的目标读者
- 写过
new Thread()、用过ExecutorService,但线程池参数基本靠抄别人的配置; - 知道 volatile 能保证可见性,但说不清它和内存屏障、指令重排的关系;
- 面试被问 CAS 的 ABA 问题、ThreadLocal 的内存泄漏,只能答个大概;
- 线上遇到线程卡死、CPU 飙高,除了 jstack 打印一下,不太会顺着锁和队列往下查。
如果上面中了两条以上,这门课的知识密度对你是有用的;如果你还没写过任何多线程代码,建议先把线程生命周期、wait/notify 这些基础过一遍再来。
它解决的是“知识点散”的问题
JUC 的麻烦在于内容成网状:锁、CAS、AQS、并发容器、线程池、同步工具类,彼此咬着。只背 API 容易记住又忘掉,只啃源码又容易卡在某个抽象层次出不来。这门课的组织方式是把工具和原理放在一起讲——比如讲 ReentrantLock 时不只讲 lock/unlock,而是顺着它走到 AQS 的 state、等待队列和 Condition 的节点流转;讲 ConcurrentHashMap 时会涉及分段思想到 CAS+synchronized 的演进。这样你记住的不是一个个孤立的类,而是几个可以复用的机制模型。
配套练习该怎么用
并发的东西看会了不等于写对了,因为它的错误往往在时序上,不在语法上。建议每学完一块就动手验证:用线程池模拟一批任务,观察不同拒绝策略下的行为差异;写一段代码主动触发死锁,再用工具定位到具体线程和锁;用 CountDownLatch 或 CyclicBarrier 压一个多阶段任务,看看哪一步会先撑不住。这些练习的价值在于逼你把“大概是这样”变成“我能观察到它确实是这样”。课里的示例可以当起点,但改参数、改并发量、故意写错再排查,收获更大。
看完应该能回答的问题
- 线程池的 corePoolSize、maximumPoolSize、workQueue 三者是怎么配合决定任务去向的,什么时候该用有界队列;
- volatile 保证什么、不保证什么,为什么它替代不了锁;
- AQS 的独占模式和共享模式在实现上差在哪,为什么 CountDownLatch 用完不能重置而 CyclicBarrier 可以;
- ConcurrentHashMap 为什么不再用分段锁,size() 的准确性是怎么权衡的;
- ThreadLocal 的 Entry 为什么要用弱引用,泄漏到底发生在哪一步。
能把这些讲清楚,说明你不是在用并发工具,而是理解了它的边界和代价。这门课值得带着这些问题去听,而不是从头到尾被动刷一遍。
Java 并发:JUC 入门与进阶
课程详情
课程详情
JUC 助力多线程协同工作,成就高效并发
课程介绍
Java 技术的迅猛发展使得各个领域的成熟度都非常高,许多 Java 开发者习惯于依赖各种成熟的框架,从而实现“开箱即用”。然而,有时候他们可能会忽略对自身 Java 基础功底的深入修炼。
熟练掌握 Java 基础,并深入理解其原理,对于开发者更好地使用和理解开发框架大有裨益。
在 Java 多线程技术 方面,许多从业者都认识到这是精进 Java 基础的必经之路。然而,多线程技术在实际开发和调试中常常变得复杂而混乱。在互联网上找零碎的知识点往往难以形成体系,而且很多教程只是平铺许多枯燥的并发概念,这可能会令初学者感到困惑或学不下去。
我曾在主持研发公司的自研调度中间件项目中涉及到大量的并发操作,包括线程池、CAS、ThreadLocal、锁等。因此,我深入研究和实践了这些知识,并最终形成了一套适用于广大开发者学习多线程的知识体系。此外,我还开源了一款代码无侵入的可视化线程池监控工具 ThreadX,这进一步提高了我对线程使用的认识。
因此,我决定分享一份更易理解、更符合实际开发环境的多线程学习资料。于是,也就有了这本小册。
适合人群
- Java 开发者
- 对多线程技术感兴趣的学习者
- 希望提升并发编程能力的工程师
学习收获
- 深入理解 Java 多线程技术原理
- 掌握 JUC 工具类使用
- 提升并发编程能力
- 解决实际开发中的并发问题
课程亮点
- 结合实际项目经验,深入浅出讲解
- 提供开源可视化工具,辅助学习
- 系统化知识体系,易于理解和掌握
课程目录
多线程初阶:解谜多线程世界 线程池掌故:管理并发的秘籍 锁的奥秘:synchronized 的秘密 锁的奥秘:Lock 接口的秘密 控制并发流程,并发的巧妙编织 ThreadLocal 之珍宝:线程的隐秘宝库 CAS:比肩而立的原子魔法 容器的魔力:并发世界的宝库 结果如何?线程的秘密告白 AQS:保证并发安全的终极奥秘(上) AQS:保证并发安全的终极奥秘(中) AQS:保证并发安全的终极奥秘(下)





