《王者并发课》的全称是 《王者并发课:结构化认知Java中的并发》,是一个系列的文章。我将在这个系列中,按照下面的大纲循序渐进带你结构化认知Java中的并发,并计划在2021年8月31号之前更新完毕,每周不定期更新。
该系列文章以不同的段位进行组织,不同的段位代表着不同的认知难度。之所以使用王者中的段位概念,不仅是因为有调和文章趣味性的考虑,更为重要的是,随着认知难度的增加,我们坚持下去的难度也同样在增加,甚至后者来得更为强烈。坚持,在当下是如此的朴素且稀缺。
所谓“行百里者半九十”,对读者如此,对我来说更是如此。读者需要坚持读下去,我需要坚持写下去。因此,我诚邀掘金的朋友能关注我、监督我、提出宝贵意见,我们一起做长期主义者,一起从青铜到王者。
你可以学到什么
- 认知Java中并发基础实践和理论;
- 认知并发编程中所面临的问题以及对应的解决策略;
- 认知并发背后的底层原理;
- 理解并掌握Java中的常用并发工具;
- 注:该系列文章并非面向求职面试而写,但可以作为面试辅助材料。
适合的读者
- 已经在Java编程方面具有一定经验和基础知识的学生和职场新人;
- 想要在短时间内获得多线程,并行编程和并发技能的学生和职场新人;
- 希望结构化认知Java并发编程的专业开发者;
- 正在求职路上并希望结构化梳理Java并发知识的专业开发者。
大纲与更新进度(出现在大纲中的文章均已更新)
一、起初:感知并发中的基础 | 青铜⭐️
- 青铜1:牛刀小试-如何创建线程之初体验
- 青铜2:本来面目-如何简单认识Java中的线程
- 青铜3:兴利除弊-如何理解多线程带来的安全问题
- 青铜4:宝刀屠龙-如何使用synchronized之初体验
- 青铜5:一探究竟-如何从synchronized理解Java对象头中的锁
- 青铜6:借花献佛-如何格式化Java内存工具JOL输出
- 青铜7:顺藤摸瓜-如何从synchronized中的锁认识Monitor
- 青铜8:分工协作-从本质认知线程的状态和动作方法
- 青铜9:防患未然-如何处理线程中的异常
- 青铜10:千锤百炼-如何解决生产者与消费者经典问题
二、烦恼:理解并发中的问题 | 黄金⭐️⭐️
三、欢喜:解决并发问题的策略 | 铂金⭐️⭐️⭐️
- 铂金1:探本溯源-为何说Lock接口是Java中锁的基础
- 铂金2:豁然开朗-“晦涩难懂”的ReadWriteLock竟如此妙不可言
- 铂金3:一劳永逸-如何理解锁的多次可重入问题
- 铂金4:令行禁止-为何说信号量是线程间的同步利器
- 铂金5:致胜良器-无处不在的“阻塞队列”究竟是何面目
- 铂金6:青出于蓝-Condition如何把等待与通知玩出新花样
- 铂金7:整齐划一-CountDownLatch如何协调多线程的开始和结束
- 铂金8:峡谷幽会-看CyclicBarrier如何跨越重峦叠嶂
- 铂金9:互通有无-Exchanger如何完成线程间的数据交换
- 铂金10:能工巧匠-ThreadLocal如何为线程打造私有数据空间
四、抬首:驾驭线程池与并发集合 | 砖石⭐️⭐️⭐️⭐️
五、低眉:洞见并发底层的原理 | 星耀⭐️⭐️⭐️⭐️⭐️
六、觉醒:领略并发中的高级主题| 王者⭐️⭐️️⭐️⭐️⭐️⭐️
特别说明:限于作者的认知和写作水平,第六部分的王者段位暂不更新。如果你希望了解真实的架构中如何处理高并发问题,可以考虑阅读我的掘金小册:《高并发秒杀的设计精要与实现》。