前言
学完阿里 P8 面试官推荐的 Java 高并发核心编程文档后终于拿到了蚂蚁 p6 的 offer,这份文档包含的内容有点多。
主要包含的内容:Java NIO、Reactor 模式、高性能通信框架 Netty、分布式锁、分布式 ID、分布式缓存、高并发架构、多线程、线程池、内置锁、JMM、CAS、JUC、高并发设计模式。
java 高并发核心编程卷 1 学习目录
java 高并发核心编程卷 2 学习目录
第 1 章介绍线程的核心原理、线程的基本操作、线程池的核心原理、JUC 的线程池架构、4 种快捷创建线程池的方法。除此之外,还从生产实际的角度出发,介绍在生产场景中如何合理预估 3 类线程池(IO 密集型、CPU 密集性、混合型)的线程数。
第 2 章基于生产者-消费者模式的实战案例,介绍线程安全问题和 Java 内置锁的核心原理。首先揭秘 Java 对象的存储布局、对象头的具体结构,并介绍如何用 JOL 工具查看对象的结构。然后介绍 synchronized 内置锁的核心原理,以及内置锁从偏向锁到轻量级锁再到重量级锁的升级过程。
第 3 章介绍 CAS 原理与 JUC 原子类,并解密在争用激烈的高并发场景下,如何提升高 CAS 操作的性能。最后揭秘 CAS 操作的弊端和两类规避措施。
第 4 章介绍 Java 并发编程的三大问题——原子性问题、可见性问题和有序性问题,阐述 JMM 的核心原理,揭秘 Java 内存可见性和 volatile 关键字的底层知识。
第 5 章介绍 JUC 显式锁的原理与实战。首先介绍使用显式锁的正确方法、显式锁的分类,然后揭秘 CAS 可能导致的“总线风暴”和 CLH 自旋锁,最后从实例出发介绍 JUC 中的可中断锁和不可中断锁、共享锁与独占锁、读写锁。
第 6 章介绍 JUC 高并发的基础设施——AQS 抽象同步器的核心原理。本章从模板模式入手,抽丝剥茧,层层深入,揭秘 AQS 的内部结构。然后结合 SimpleMockLock 独占锁的释放流程、ReentrantLock 的抢锁流程,图文并茂地剖析释放、抢占 AQS 锁的源码和原理。
第 7 章介绍 JUC 容器类,包括 CopyOnWriteArrayList、BlockingQueue、ConcurrentHashMap 等高并发容器类的原理和使用。
第 8 章介绍高并发设计模式,主要包括 Java 开发必须掌握的安全单例模式、Master-Worker 模式、ForkJoin 模式、生产者-消费者模式、Future 模式。
第 9 章着重介绍高并发编程中经常用到的高并发设计模式——异步回调模式。
第 10 章介绍 Java 8 所提供的一个具备异步回调能力的新工具类——CompletableFuture 类的原理和使用。