目 录
第一篇 章鱼交响乐团:并发交响曲1
第1章 并发入门3
1.1 为什么并发如此重要4
1.2 并发的层级8
1.3 本书内容10
1.4 本章小结11
第2章 串行执行和并行执行13
2.1 程序概念14
2.2 串行执行15
2.3 顺序计算16
2.4 并行执行18
2.5 并行计算的要求20
2.6 并行计算22
2.7 阿姆达尔定律27
2.8 古斯塔夫森定律31
2.9 并发与并行31
2.10 本章小结33
第3章 计算机工作原理35
3.1 处理器36
3.2 运行时系统39
3.3 计算机系统设计40
3.4 并发的硬件层级41
3.5 本章小结45
第4章 创建并发组件47
4.1 并发编程步骤48
4.2 进程48
4.3 线程52
4.4 本章小结58
第5章 进程间通信59
5.1 通信类型60
5.2 线程池模式70
5.3 再次破解密码73
5.4 本章小结75
第二篇 并发的章鱼触手:多任务、分解、同步77
第6章 多任务79
6.1 CPU密集型和I/O密集型应用80
6.2 多任务需求82
6.3 多任务概览85
6.4 多任务环境90
6.5 本章小结93
第7章 分解95
7.1 依赖分析96
7.2 任务分解97
7.3 任务分解:流水线模式98
7.4 数据分解103
7.5 颗粒度111
7.6 本章小结113
第8章 并发难题:竞争条件和同步115
8.1 资源共享116
8.2 竞争条件117
8.3 同步121
8.4 本章小结128
第9章 处理并发问题:死锁和饥饿131
9.1 哲学家就餐问题132
9.2 死锁134
9.3 活锁139
9.4 饥饿141
9.5 同步设计143
9.6 再谈并发149
9.7 本章小结150
第三篇 异步章鱼:使用并发原理烹饪比萨151
第10章 非阻塞式I/O153
10.1 世界是分布式的154
10.2 客户端-服务器模型154
10.3 比萨点餐服务156
10.4 阻塞式I/O163
10.5 非阻塞式I/O165
10.6 本章小结168
第11章 事件驱动并发171
11.1 事件172
11.2 回调173
11.3 事件循环173
11.4 I/O多路复用176
11.5 事件驱动的比萨服务器177
11.6 反应器模式179
11.7 消息传递中的同步181
11.8 I/O模型183
11.9 本章小结184
第12章 异步通信185
12.1 对异步的需求186
12.2 异步过程调用186
12.3 协同多任务处理187
12.4 Future对象192
12.5 协同比萨服务器196
12.6 异步比萨店201
12.7 异步模型结论207
12.8 本章小结208
第13章 创建并发应用209
13.1 并发概念210
13.2 Foster方法论211
13.3 矩阵乘法212
13.4 分布式词频统计220
13.5 本章小结231
结语233