我为什么写此系列文章
- 此前看书走马观花,自己写的代码量少,书中代码案例也难以满足我的需求
- 书籍一般干货很多,笔墨都用在讲原理逻辑上,导致案例和专业教材不同,而案例过少,专业教材都会提供大量案例和练习题,但是技术书籍每个知识点仅仅提供一两个配图和代码案例和汉语例子.这是导致我看书理解慢的原因之一,相信有很多人和我一样.
我是如何写此系列文章的
- 因此我读书时,会增加代码案例量,扩展出至少3倍原来的代码量,3倍汉语案例讲解,让自己用更多案例(代码案例,汉语案例)来理解晦涩难懂的java高并发,未来会重写全文,加入3倍配图
- 本系列文章核心是提供3倍代码案例扩展,提供3倍比喻帮助大家理解,提供3倍配图.实际是使用费曼学习法换一种方式(把抽象的概念转化为代码案例,图像案例,比喻案例)讲述高并发.
- 但是书籍的架构要保留,方便大家查找书中对应概念.
- 文章为根据我的理解和回忆进行了重构.
- 按照教材模式编写,结构清晰,案例大量,增加思考题,练习题
java并发编程的重要性
- 是java面试的高频考点,也是学习的难点,学习门槛较高。
- 在业务中解决高并发问题也需要使用并发编程
文章结构
基础篇
- 线程知识
高并发
- 基本概念
- 基础知识
高级篇
- 并发包下常用组件的原理
实践篇
- 并发组件的具体使用方法
- 并发编程中常见问题和解决方案
读开原框架源码的心得
为何要读源码
- 不知如何设计或者设计时候考虑不周全
如何获取经验
- 学习开源框架
- 学习开源项目
- 阅读公司系统源码
读源码的好处
- 如使用并发队列ArrayBlockingQueue时,不了解offer方法和put方法的区别,这时候去读源码看实现原理
- 开阔思维,快速积累经验
如何看源码
- 先google框架的架构,把每个模块功能和关系了解清楚
对感兴趣的模块,用代码语言复现,写一个demo,然后去debug3遍
第一遍
- 核心看调用逻辑,看有哪些类,如何互相调用
- 不要深入看对应类中的代码
第二遍
- 有重点的debug
- 看看类有哪些功能
- 用了哪些设计模式
第三遍
- 用图像语言复述
- 画 时序图,类图,画出调用过程
- 复习的时候看自己画的图,节约时间不用再看源码
- 阅读源码中的注释
- 不一定要读三遍源码,根据掌握程度选择,我认为至少3遍,如果能一遍掌握,那更好