作品简介

本书聚焦Java高并发编程基础知识,介绍Java多线程、线程池、内置锁、JMM、CAS、JUC、高并发设计模式等并发编程方面的核心原理和实战知识。

本书共10章。第1、2章剖析多线程、线程池的核心原理和实战应用,揭秘线程安全问题和Java内置锁的核心原理。第3、4章讲解CAS原理与JUC原子类、JMM的核心原理,揭秘CAS操作的弊端和两类规避措施,以及Java内存可见性和volatile关键字的底层知识。第5章讲解JUC显式锁的原理和各种显式锁的使用。第6章阐述JUC高并发的基础设施——AQS抽象同步器的核心原理。第7章介绍JUC容器类。第8~10章介绍常见的Java高并发设计模式的原理和使用。

本书既可以作为Java工程师、架构师的编程参考书,又可以作为参加互联网大厂面试、笔试的人员的学习参考书。

作品目录

  • 前言
  • 自序
  • 第1章 多线程原理与实战
  • 1.1 两个技术面试故事
  • 1.2 无处不在的进程和线程
  • 1.3 创建线程的4种方法
  • 1.4 线程的核心原理
  • 1.5 线程的基本操作
  • 1.6 线程池原理与实战
  • 1.7 确定线程池的线程数
  • 1.8 ThreadLocal原理与实战
  • 第2章 Java内置锁的核心原理
  • 2.1 线程安全问题
  • 2.2 synchronized关键字
  • 2.3 生产者-消费者问题
  • 2.4 Java对象结构与内置锁
  • 2.5 偏向锁的原理与实战
  • 2.6 轻量级锁的原理与实战
  • 2.7 重量级锁的原理与实战
  • 2.8 偏向锁、轻量级锁与重量级锁的对比
  • 2.9 线程间通信
  • 第3章 CAS原理与JUC原子类
  • 3.1 什么是CAS
  • 3.2 JUC原子类
  • 3.3 对象操作的原子性
  • 3.4 ABA问题
  • 3.5 提升高并发场景下CAS操作的性能
  • 3.6 CAS在JDK中的广泛应用
  • 第4章 可见性与有序性的原理
  • 4.1 CPU物理缓存结构
  • 4.2 并发编程的三大问题
  • 4.3 硬件层的MESI协议原理
  • 4.4 有序性与内存屏障
  • 4.5 JMM详解
  • 4.6 Happens-Before规则
  • 4.7 volatile不具备原子性
  • 第5章 JUC显式锁的原理与实战
  • 5.1 显式锁
  • 5.2 悲观锁和乐观锁
  • 5.3 公平锁与非公平锁
  • 5.4 可中断锁与不可中断锁
  • 5.5 共享锁与独占锁
  • 5.6 读写锁
  • 第6章 AQS抽象同步器的核心原理
  • 6.1 锁与队列的关系
  • 6.2 AQS的核心成员
  • 6.3 AQS中的模板模式
  • 6.4 通过AQS实现一把简单的独占锁
  • 6.5 AQS锁抢占的原理
  • 6.6 AQS的两个关键点:节点的入队和出队
  • 6.7 AQS锁释放的原理
  • 6.8 ReentrantLock的抢锁流程
  • 6.9 AQS条件队列
  • 6.10 AQS的实际应用
  • 第7章 JUC容器类
  • 7.1 线程安全的同步容器类
  • 7.2 JUC高并发容器
  • 7.3 CopyOnWriteArrayList
  • 7.4 BlockingQueue
  • 7.5 ConcurrentHashMap
  • 第8章 高并发设计模式
  • 8.1 线程安全的单例模式
  • 8.2 Master-Worker模式
  • 8.3 ForkJoin模式
  • 8.4 生产者-消费者模式
  • 8.5 Future模式
  • 第9章 高并发核心模式之异步回调模式
  • 9.1 从泡茶的案例讲起
  • 9.2 join:异步阻塞之闷葫芦
  • 9.3 FutureTask:异步调用之重武器
  • 9.4 异步回调与主动调用
  • 9.5 Guava的异步回调模式
  • 9.6 Netty的异步回调模式
  • 9.7 异步回调模式小结
  • 第10章 CompletableFuture异步回调
  • 10.1 CompletableFuture详解
  • 10.2 异步任务的串行执行
  • 10.3 异步任务的合并执行
  • 10.4 异步任务的选择执行
  • 10.5 CompletableFuture的综合案例
展开全部