第1章 绪论
1.1 概述
1.2 并发与并行
1.2.1 并发
1.2.2 并行
1.3 Flynn分类
1.4 并行编程模型
1.4.1 多线程并行模型
1.4.2 共享内存并行模型
1.4.3 分布式并行模型
1.4.4 混合并行编程模型
1.4.5 数据并行模型
1.5 并行程序设计方法
1.5.1 分治
1.5.2 流水线
1.5.3 消息传递
1.6 加速比
1.6.1 阿姆达尔定律
1.6.2 高斯特凡定律
1.7 并行程序评判标准
1.8 Java并行
1.8.1 并行特性
1.8.2 内存模型
1.9 程序运行说明
习题
第2章 线程
2.1 基本概念
2.1.1 进程与线程
2.1.2 超线程
2.2 线程的创建
2.2.1 不带返回值的线程——从Thread类继承
2.2.2 不带返回值的线程——实现Runnable接口
2.2.3 带返回值的线程——实现Callable接口
2.2.4 简化线程创建代码
2.3 线程的属性
2.3.1 线程标识符
2.3.2 线程名
2.3.3 线程状态
2.3.4 优先级
习题
第3章 线程的管理
3.1 线程数目的确定
3.2 线程运行的控制
3.2.1 等待线程执行完毕
3.2.2 休眠
3.2.3 中断
3.2.4 让出CPU的使用权
3.3 守护线程
3.4 线程分组
3.5 线程本地化
3.6 线程开销问题
习题
第4章 锁
4.1 概述
4.2 基本概念
4.2.1 数据竞争
4.2.2 线程安全
4.2.3 临界区
4.2.4 监视器
4.3 为什么使用同步控制
4.4 同步锁
4.4.1 同步方法
4.4.2 同步块
4.5 可重入锁
4.6 读写锁
4.7 邮戳锁
4.8 锁的缺点
4.8.1 锁竞争
4.8.2 优先权反转
4.8.3 死锁
4.8.4 活锁
4.9 本章小结习题
第5章 原子操作
5.1 原子性
5.2 基本类型的原子操作
5.3 引用类型的原子操作
5.4 ABA问题
5.5 扩展的原子引用类型
5.5.1 类AtomicMarkableReference
5.5.2 类AtomicStampedReference
5.6 原子操作数组类
5.7 volatile关键字
5.7.1 可见性
5.7.2 原子性
5.7.3 指令重排
5.8 本章小结
习题
第6章 异步模式
6.1 基本概念
6.1.1 同步和异步
6.1.2 阻塞和非阻塞
6.1.3 回调
6.1.4 I/O密集型任务和计算密集型任务
6.2 接口Future
6.3 类FutureTask
6.4 类CompletableFuture
6.4.1 类的定义
6.4.2 创建对象
6.4.3 获取返回值
6.4.4 执行模型
6.4.5 多个异步任务处理
6.4.6 使用回调函数
6.4.7 综合应用实例
6.5 本章小结
习题
第7章 线程协作
7.1 通过共享变量进行协作
7.2 等待集合
7.3 等待与通知
7.4 条件变量
7.5 交换器
习题
第8章 线程障栅
8.1 概述
8.2 循环障栅
8.3 倒计时门门
8.4 信号量
8.5 阶段习题
第9章 线程池管理
9.1 线程池
9.1.1 为什么使用线程池
9.1.2 相关接口和类
9.1.3 应用举例
9.2 固定数目的线程池
9.3 延迟执行、周期性执行的执行器
9.4 取消任务的执行
9.5 任务装载和结果处理的分离
9.6 管理被拒绝的任务
习题
第10章 并行模式Fork/Join
10.1 基本概念
10.1.1 任务划分
10.1.2 负载均衡
10.1.3 工作窃取
10.2 Fork/Join框架的编程模式
10.3 线程池ForkJoinPool
10.3.1 创建ForkJoinPool对象
10.3.2 使用ForkJoinPool
10.4 任务ForkJoin Task
10.4.1 从类RecursiveAcimm继承创建任务
10.4.2 从类RecursiveTask继承创建任务
10.4.3 任务的运行方式
10.4.4 任务的取消
10.5 本章小结
习题
第11章 线程安全的集合
11.1 线程安全的哈希表
11.1.1 类ConcurrentHashMap
11.1.2 类HashTable
11.1.3 方法Collections.synchromizedMap
11.2 线程安全的双端队列
11.3 线程安全的跳表
11.4 同步队列
11.5 随机数产生
11.6 并行流
11.6.1 函数式接口Predicate
11.6.2 流的创建
11.6.3 流的操作
习题
第12章 定制并行类
12.1 定制同步类
12.1.1 定制锁
12.1.2 定制原子操作
12.2 定制线程工厂
12.3 定制线程池
12.4 定制线程执行器
12.5 定制周期性任务
12.6 定制与Fork/Join框架相关的并发类
12.6.1 类ForkJoinWorkerThread
12.6.2 接口ForkJoinPool.ForkJoinWorkerThreadFactory
12.6.3 自定义Fork/Join框架中的线程
12.6.4 自定义任务
习题
第13章 并行程序设计实例
13.1 桶排序及其并行化
13.1.1 桶排序过程
13.1.2 并行化
13.2 奇偶排序及其并行化
13.2.1 奇偶
展开