Introduction
第一版的赞许
前言
感谢
关于本书
关于作者
关于封面
第1章 你好,并发世界
1.1 何谓并发
1.2 为什么使用并发
1.3 并发和多线程
1.4 开始入门
1.5 本章总结
第2章 线程管理
2.1 线程的基本操作
2.2 传递参数
2.3 转移所有权
2.4 确定线程数量
2.5 线程标识
2.6 本章总结
第3章 共享数据
3.1 共享数据的问题
3.2 使用互斥量
3.3 保护共享数据的方式
3.4 本章总结
第4章 同步操作
4.1 等待事件或条件
4.2 使用future
4.3 限时等待
4.4 简化代码
4.5 本章总结
第5章 内存模型和原子操作
5.1 内存模型
5.2 原子操作和原子类型
5.3 同步操作和强制排序
5.4 本章总结
第6章 设计基于锁的并发数据结构
6.1 并发设计的意义
6.2 基于锁的并发数据结构
6.3 设计更加复杂的数据结构
6.4 本章总结
第7章 设计无锁的并发数据结构
7.1 定义和意义
7.2 无锁数据结构的例子
7.3 设计无锁数据结构的指导建议
7.4 本章总结
第8章 并发设计
8.1 线程间划分工作
8.2 并发代码的性能
8.3 为多线程性能设计数据结构
8.4 设计并发代码的注意事项
8.5 在实践中设计并发代码
8.6 本章总结
第9章 高级线程管理
9.1 线程池
9.2 中断线程
9.3 本章总结
第10章 并行算法
10.1 并行化标准库算法
10.2 执行策略
10.3 C++标准库中的并行算法
10.4 本章总结
第11章 测试和调试多线程应用
11.1 与并发相关的Bug
11.2 定位并发Bug的技巧
11.3 本章总结
附录A C++11特性简明参考(部分)
A.1 右值引用
A.2 删除函数
A.3 默认函数
A.4 常量表达式函数
A.5 Lambda函数
A.6 变参模板
A.7 自动推导变量类型
A.8 线程本地变量
A.9 模板类参数的推导
A.10 本章总结
附录B 并发库简要对比
附录C 消息传递框架与完整的ATM示例
附录D C++线程类库参考
D.1 chrono头文件
D.2 condition_variable头文件
D.3 atomic头文件
D.4 future头文件
D.5 mutex头文件
D.6 ratio头文件
D.7 thread头文件
本书使用 GitBook 发布
10.4 本章总结
10.4 本章总结
本章研究了C++标准库中可并行的算法,以及它们的用法。研究了各种执行策略,了解了不同执行策略对算法行为的影响,以及对代码的限制。然后看了一个示例,说明如何在实践中使用该算法。
results matching "
"
No results matching "
"