Java高并发核心编程(卷2)

尼恩 编著
前言 移动时代、5G时代、物联网时代的大幕已经开启,新时代提升了对Java应用的高性能、高并发的要求,也抬升了Java工程师的技术台阶和面试门槛。 很多公司的面试题从某个侧面反映了生产场景的技术要求。之前只有BAT等大公司才有高并发技术相关的面试题,现在与Java项目相关的整个行业基本都涉及此类面试题。多线程、线程池、内置锁、JMM、CAS、JUC、高并发设计模式等Java并发编程方面的面试题,从以前的加分题变成现在的基础题。本书着重介绍Java并发编程基础知识,揭秘Java高并发编程的核心难题和解决方案。 本书内容 本书是三卷本《Java高并发核心编程》的第2卷,旨在帮助大家掌握Java高并发基础知识:多线程、线程池、内置锁、JMM、CAS、JUC、高并发设计模式、Java异步回调、CompletableFuture类等。 第1章介绍线程的核心原理、线程的基本操作、线程池的核心原理、JUC的线程池架构、4种快捷创建线程池的方法。除此之外,还从生产实际的角度出发,介绍在生产场景中如何合理预估3类线程池(IO密集型、CPU密集性、混合型)的线程数。 第2章基于生产者-消费者模式的实战案例介绍线程安全问题和Java内置锁的核心原理。首先揭秘Java对象的存储布局、对象头的具体结构,并介绍如何用JOL工具查看对象的结构。然后介绍synchronized内置锁的核心原理,以及内置锁从偏向锁到轻量级锁再到重量级锁的升级过程。 第3章介绍CAS原理与JUC原子类,并解密在争用激烈的高并发场景下,如何提升高CAS操作的性能。最后揭秘CAS操作的弊端和两类规避措施。 第4章介绍Java并发编程的三大问题——原子性问题、可见性问题和有序性问题,阐述JMM的核心原理,揭秘Java内存可见性和volatile关键字的底层知识。 第5章介绍JUC显式锁的原理与实战。首先介绍使用显式锁的正确方法、…