为了账号安全,请及时绑定邮箱和手机立即绑定
慕课专栏

目录

索引目录

Java 并发编程深度解析

原价 ¥ 58.00

立即订阅
01 开篇词:为什么Java并发如此重要
更新时间:2020-12-10 11:03:02
什么是路?就是从没路的地方践踏出来的,从只有荆棘的地方开辟出来的。 —— 鲁迅

1. 开篇词

你好,我是韦恩,在 Java 领域混迹 9 年有余。 相信每一位 Java 工程师对 Java 并发都不陌生,无论是面试、工作中编写的代码以及线上问题定位都需要并发知识。

  • Java 并发是面试中考察的基础技能

    Java 并发被认为是 Java 候选人必备的技能之一,面试中出现的频率不亚于 JVM,很多工作多年的 Java 程序员因为平时不注重这方面的学习,与心仪的工作机会失之交臂。对 Java 并发考察一方面能反映候选人日常工作是否深入底层,平时遇到难题是否足够多,另一方面还能反应候选人是否有自我学习的驱动力,这也是筛选普通工程师和优秀工程师的常用套路。

  • 工作编码中离不开并发知识

    线程是 Java 语言不可或缺的功能,多线程能充分发挥多核心处理器系统的计算力,这使得我们写 Java 代码不得不理解多线程运行的原理,处理不当就会带来线程安全问题(稍后章节会有讲解)。我们接入的各种框架、中间件中充斥着并发代码,掌握好并发知识能让我们通过查看代码做出最优的技术选型。

  • 问题诊断与定位离不开并发知识

    在工作如果我们维护的尤其是拥有海量用户的大型系统,我们需要监控系统中的每个细节,要系统整体运行机制有了解,对系统有足够的掌控力,并发知识是不可或缺的。比如线程池满如何发生的?哪些线程消耗的 CPU 最高?造成死锁的根源是什么?为什么多线程环境下结果与预期不一致?锁等待造成的 RT 增高是否有优化空间等等。

并发知识的 Java 工程师的必备技能,但学好并发却不是件容易的事情,主要有三点。

  • Java 并发需要系统的进行学习

    不同于 Java API, 可能我们看看样例和代码就掌握了,而学好并发我们需要首先熟悉并发理论,然后结合实践掌握并发的解决方案,在学习过程中需要遵守循序渐进的原则。如果要达到举一反三效果,还需要掌握并发包的内部原理。

  • Java 并发是需要总结并形成记忆

    并发领域包含的知识点非常多,有些知识点在工作中不常用但却在面试中高频出现;有些知识点是为后续的知识点打基础的;并发组件的使用是分场景的,我们需要对每一个并发组件的优缺点了如指掌。

  • 并发包的原理的研究需要花很长时间

    核心原理是需要掌握的,比如 ThreadPoolExecutor 工作流程想必大家面试中都遇到过, 原理的研究最直接的方式就是 debug 源码,但缺点就是非常费时费力,另外很难抓住核心。但如果通过图形化来描述核心原理,那么对学习是事半功倍的。

2. 专栏特点

笔者自工作以来,一直对 Java 并发编程保持着浓厚的兴趣,并将 Java 并发的学习所得总结成脑图,并持续优化,里面涵盖了并发理论、代码样例、图解原理、场景实践,从全方位介绍各个并发组件,配上大量流程图,并对其优缺点进行多维对比;每一节文字会比较精炼,尽量将重心放到原理阐述和核心点讲解上,保证干货满满,相信该专栏能成为大家工作、面试中的掌中宝。

3. 课程模块

专栏涵盖的知识点比较全面,共分为八大模块。

  • 并发理论基础

    本模块将从操作系统层面讲解线程安全问题是如何产生的,在多线程编程的过程中,支撑我们解决线程安全问题的理论基础是什么。本模块是该专栏的基础,对后续模块的学习有很大帮助,同时也会刷新大家对并发世界的重新认识。

  • Java 的线程状态流转

    一个线程在它的生命周期内从创建到销毁都经历了哪几种状态,状态之间是如何流转的,不同状态下有什么表现;线程如何终止和中断;守护线程与普通线程有什么区别;线程间如何进行通信的,wait/signal 机制是什么;上述问题在本模块都会得到解答。

  • Java 的 Atomic 类用在什么场景

    Atomic 类在 Java 中是非常常用的类,本模块会讲解这些不同的 Atomic 类包括 AtomicInteger,AtomicBoolean,AtomicLong,AtomicReference,Atomic*FieldUpdater 分别用在什么场景,以及如何通过 CAS 操作实现无锁化操作的,通过本模块的学习,会进一步加深对 CAS 的认识。

  • Java 的锁的运行原理是什么

    讲解 Lock 锁与原生 Synchronized 锁的区别,以及锁的底层实现 AQS,AQS 是整个并发包的核心,理解了 AQS 的原理就了解了锁机制的实现,结合常见的锁冲入锁和读写锁,来讲解这两种锁的使用场景和具体实现。

  • Java 中有哪些并发安全容器

    讲述线程安全的 List-CopyOnWriteArrayList,线程安全的 Set-CopyOnWriteSet,线程安全的 Map-ConcurrentHashMap,分为 jdk1.7 和 jdk1.8 两个实现版本,并且阐述 HashMap 在多线程中如何出现死循环的。 本模块还会对常见的队列进行讲解,包括阻塞队列 ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue、LinkedTransferBlockingQueue,以及非阻塞队列 ConcurrentLinkedQueue,优先队列和延迟队列 DelayQueue 及 DelayedWorkQueue。

  • 面试热点–Java 线程池

    Java 线程池是面试常考内容,本模块不仅会涵盖线程池常考的知识点,还会讲述整个线程池的底层实现,jdk8 新特性 CompletableFuture,以及 Fork/Join 框架。

  • 巧妙运用 Java 并发工具类解决并发问题

    本模板会介绍常见的 Java 并发工具类,并且进行多维度对比,学完本模块,大家能了解对各自工具类的活学活用。

  • 多线程问题诊断与定位

    本模块会结合实际案例演示从问题的发现、止损、恢复的全过程,并且通过监控工具实时查看线程运行状态,让大家能够对线程运行状态有一个全局的把握。

4. 学习建议

并发领域知识点之间关系是承上启下的,学习一定要遵守一个循序渐进的过程,尽量不要跳章节学习。除此之外,专栏里面出现的代码,一定要在 IDE 里面敲出来,并且亲自运行,最好能自己改变下代码,观察不同场景下的运行结果,对知识的掌握会更加牢固。专栏中每个小节都会总结一个脑图,在学习的过程中,最好结合自己的理解和学习最终画出整个脑图,以方便后续检索和温习;遇到理解不了了,及时和大家讨论,经过自己的思考实在想不出可以向笔者提问,笔者都是乐意为大家解答的。

}
立即订阅 ¥ 58.00

你正在阅读课程试读内容,订阅后解锁课程全部内容

千学不如一看,千看不如一练

手机
阅读

扫一扫 手机阅读

Java 并发编程深度解析
立即订阅 ¥ 58.00

举报

0/150
提交
取消