简明高效的Java并发编程学习指南
对于一个Java程序员而言,能否熟练掌握并发编程是判断他优秀与否的重要标准之一SRF。因为并发编程是Java语言中最为晦涩的知识点,它涉及操作系统、内存、CPU、编程语言等多方面的基础能力,更为考验一个程序员的内功
尤其是大数据时代的来临,高并发更成为了家常便饭,工作中,你总是绕不开并发编程的任务,比如说,你想写个程序,一边从文件中读取数据,一边还要做实时计算.....所以,想成为一名资深的Java后端工程师,并发编程必须要牢牢把握。
在这里,我就对Java并发编程的学习路径做一个梳理,方便大家查漏补缺。同时,这些内容我在《Java并发编程实战》专栏里面也做了系统的讲解SRF。
产出自己的Java并发编程全景图
并发编程并不是一门相对独立的学科,而是一个综合学科,导致大家学习很有难度,容易注重细节而忘了全局。这里我有两个建议:一个是“跳出来,看全景”;另一个是“钻进去,看本质”。
1.“跳出来,看全景”
你应该也知道,学习最忌讳的就是“盲人摸象”,只看到局部,而没有看到全局来源www.xbaixing.com。所以,你需要从一个个单一的知识和技术中“跳出来”,高屋建瓴地看并发编程。当然,这首要之事就是你建立起一张全景图。
结合我多年的工作经验来看,并发编程领域可以抽象成三个核心问题:分工、同步和互斥qIDs。以下是我根据这三个核心问题制作的「并发编程全景图」,可以让你的知识成体系,所学知识也融汇贯通起来,由点成线,由线及面。
2.“钻进去,看本质”
但是光跳出来还不够,还需要下一步,就是在某个问题上钻进去,深入理解,找到本质。
所以在学习并发编程的过程中,我都会探索它背后的理论是什么原文www.xbaixing.com。比如,当看到Java SDK里面的条件变量Condition的时候,我会下意识地问,“它是从哪儿来的?是Java的特有概念,还是一个通用的编程概念?”当我知道他来自管程的时候,我又会问,“管程被提出的背景和解决的问题是什么?”这样一路探索下来,我发现Java语言里的并发技术基本都是有理论基础的,并且这些理论在其他编程语言里也有类似的实现。
所以,技术的本质是背后的理论模型。
