教材
致谢介绍第一版的赞许前言感谢关于本书关于作者关于封面第1章 你好,C 的并发世界1.1 何谓并发1.2 为什么使用并发?1.3 C 中的并发和多线程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 使用期望等待一次性事件4.3 限定等待时间4.4 使用同步操作简化代码4.5 本章总结第5章 C 内存模型和原子类型操作5.1 内存模型基础5.2 C 中的原子操作和原子类型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 与并发相关的Bug11.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头文件
评论