阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

10/29 07:52
阅读数 17

前言

所谓并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。一直觉得并发编程是所有后台工程师的基本功,学习Java的并发工具,对整体的并发理解乃至分布式都有一定的提高,所以想和大家分享一下。

Java并发编程的艺术

我一开始直接上手JCIP(Java Concurrency in Practice)发现把握不了那本书的主线,所以思索着从国内的作者开始先,便读了下方腾飞的《Java并发编程的艺术》,这本书对于构建Java并发的整体映像是有所提高的,至少我知道了有哪些东西要深入学习。

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

本书结合JDK的源码介绍了Java并发框架、线程池的实现原理,帮助读者做到知其所以然。本书对原理的剖析不仅仅局限于Java层面,而是深入到JVM,甚至CPU层面来进行讲解,帮助读者从更底层看并发技术。本书结合线上应用,给出了一些并发编程实战技巧,以及线上处理并发问题的步骤和思路。

The Art of Multiprocessor Programming

接着我想加强下并发的理论,继续读了The Art of Multiprocessor Programming,这本书只有英文原版读起来有些艰难,但是过一遍还是好处多多,建议初学者了解下概念,后期可以再来翻看。

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

The Art of Multiprocessor Programming

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

This book is intended to serve both as a textbook for a senior-level undergraduate course, and as a reference for practitioners.

JCIP(Java并发编程实践)

有了以上两步的支持,接下来就又开始啃JCIP了,发现比以前有了不同的感觉,我能比较轻松地跟上书的脉络,知道书的整体框架,读起来不那么费劲了,这本书号称Java并发编程的圣经,确实可以看出作者有很丰富的并发实践经验。

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

JCIP一书的整体脉络如下:

  1. 介绍多线程的利弊;
  2. 解释线程安全是什么以及如何获得线程安全;
  3. 从高频的使用场景出发,介绍对象传递,类的设计等如何获得线程安全;
  4. 从Java并发包出发,介绍高层的并发组件有啥以及相关原理;
  5. 介绍并发的一些弊端以及如何避免;
  6. 从Java并发包出发,介绍底层的并发组件以及原理;

总体看,该书有两条主线,1 从高到低介绍Java并发包的一些重要组件和原理; 2 从并发场景出发,介绍如何利用这些组件来获得线程安全。其中第二部分是这本书最大的特色,也是书名中有Practice的原因。

所有Java并发编程书籍已整理PDF,并附有知识图谱学习路线。需要完整版的朋友,可以以下方式来获取!!!

七周七并发模型

到了这一步,接下来怎么继续提高呢?我发现了一本很有趣的书,《七周七并发模型》。之前的视野一直是在Java并发编程的工具包中深入了解,感觉应该跳出来,从模型的角度看看各个语言的并发实现的原理,我目前正处于这一步,发现很有意思,第一章讲Java的线程和锁这个模型就感觉很精髓,只用了小三章把Java整体的脉络过了一遍,强烈推荐用来复习。

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

有了Java并发的基础知识,接下来很适合阅读七周七并发,我目前就在读七周七并发,发现站在多种语言从范式的角度了解并发很有意思,原来Java提供的线程和锁的机制其实相当于比较原始的工具了,其离底层最近。最近接触了Scala,其使用了AKKA,则是一种高层的并发抽象。

七周七并发试图从历史的角度阐述作为锁和线程的代表之Java的并发包的进化历程,首先最早加入JDK的,其实是synchronized及其statement,但是发现缺少相关timeout和不能中断等等功能,加入了可重入锁,读写锁等等,再后来又加入了各种线程安全的数据结构和高级同步机制。

接下来,七周七并发从函数式编程等等各种范式的角度阐述,除了线程和锁,还有很多其他高层抽象可以更加方便地编写并发代码。

这本书对于充分理解并发,拓宽视野很有帮助,推荐大家阅读。

深入理解Java虚拟机

最近又看了《深入理解Java虚拟机》中的并发部分,发现理解的又有变化。

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

Java语言和虚拟机提供了原生的、完善的多线程支持,使得它天生就适合开发多线程并发的应用程序。不过我们不能期望系统来完成所有与并发相关的处理,了解并发的内幕也是一个高级程序员不可缺少的课程。

知识图谱学习路线

以下是我根据自己的学习经历整理了下Java并发编程知识图谱的最新版本以及书籍学习路线:

Java并发编程知识图谱

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

Java并发编程学习路线

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

这5本Java并发编程书籍PDF和2张知识图谱学习路线,需要完整版的朋友,可以以下方式来获取!!!

阿里内部并发编程通关秘籍曝光,5本书籍和2张知识图谱面面俱到

 

最后

值得强调的一点是,在做技术选择的时候,并发只是工具箱中的一种手段,学习它只是为了能够灵活运用,设计的首要选择依然是在当时情境下的最简化,能不用并发就不要用。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部