作者: 尼恩 编著
出版社: 机械工业出版社
出版年: 2021-04
ISBN: 9787111679882
~~滚到底部有网盘下载链接~~
内容简介
本书聚焦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工程师、架构师的编程参考书,又可以作为参加互联网大厂面试、笔试的人员的学习参考书。
本书共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的综合案例
自序
第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的综合案例