前言
学完阿里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类的原理和使用。