第1章 并行编程初探 1
多核计算 2
多指令流/多数据流 2
多线程 3
同步 4
加速 5
阿姆德尔定律 6
古斯塔夫森定律 7
软件模式 8
查找并发模式 9
算法结构模式 11
支撑结构模式 12
小结 13
快速参考 14
第2章 任务并行 15
并行任务入门 15
线程 16
Task类 17
使用函数委托 23
任务中的未处理异常 25
排序例子 30
冒泡排序 30
插入排序 31
支点排序 32
使用Barrier类 32
重构支点排序算法 35
取消 36
任务之间的关系 39
连续任务 39
父任务和子任务 45
工作窃取队列 47
小结 48
快速参考 49
第3章 数据并行 51
将顺序循环展开成并行任务 52
评估性能的考虑 54
并行的for循环 55
中断循环 58
处理异常 63
处理依赖关系 64
化简 64
使用MapReduce模式 70
一个单词计数的例子 73
小结 76
快速参考 76
第4章 PLINQ简介 77
LINQ简介 78
PLINQ 81
PLINQ运算符和方法 85
ForAll运算符 85
ParallelExecutionMode 87
WithMergeOptions 88
AsSequential 88
AsOrdered 89
WithDegreeOfParallelism 90
处理异常 91
取消 92
化简 94
使用MapReduce和PLINQ 97
小结 100
快速参考 101
第5章 并发集合 103
并发集合的概念 104
制造者-使用者 105
较低级别的同步 105
SpinLock结构 105
SpinWait结构 107
两阶段同步 108
ConcurrentStack 109
ConcurrentQueue 113
ConcurrentBag 114
ConcurrentDictionary 118
BlockingCollection 120
小结 127
快速参考 127
第6章 自定义 129
确定自定义机会 129
自定义制造者-使用者集合 130
任务分区 137
高级自定义分区 143
使用Partitioner<TSource> 143
使用OrderablePartitioner<TSource>类 148
自定义调度程序 151
上下文调度程序 152
任务调度程序 153
小结 158
快速参考 159
第7章 报告和调试 161
使用Visual Studio 2010进行调试 161
现场调试 162
执行事后分析 163
调试线程 164
使用“并行任务”窗口 167
使用“并行堆栈”窗口 169
“线程”视图 170
“任务”视图 172
使用并发可视化工具 173
“CPU使用率”视图 176
“线程”视图 176
“内核”视图 179
示例应用程序 185
小结 188
快速参考 188