C++并发编程实战(第2版)

C++并发编程实战(第2版)

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。

作品简介

这是一本介绍C++并发和多线程编程的深度指南。本书从C++标准程序库的各种工具讲起,介绍线程管控、在线程间共享数据、并发操作的同步、C++内存模型和原子操作等内容。同时,本书还介绍基于锁的并发数据结构、无锁数据结构、并发代码,以及高级线程管理、并行算法函数、多线程应用的测试和除错。本书还通过附录及线上资源提供丰富的补充资料,以帮助读者更完整、细致地掌握C++并发编程的知识脉络。

本书适合需要深入了解C++多线程开发的读者,以及使用C++进行各类软件开发的开发人员、测试人员,还可以作为C++线程库的参考工具书。

安东尼·威廉姆斯(Anthony Williams),C++开发者、顾问、培训师,英国标准协会C++标准组成员,拥有超过20年的C++开发经验,独立编写或合著了众多C++标准委员会文件,为C++11标准引入了线程库,实现了工具“just::thread Pro”(Just Software Solutions公司的产品),并持续致力于开发C++的新特性,以增强C++并发工具集的功能,这两者都遵循C++标准和提案。

作品目录

  1. 版权声明
  2. 内容提要
  3. 作者简介
  4. 本书第1版赢得的赞誉
  5. 作者序
  6. 作者致谢
  7. 译者序
  8. 译者致谢
  9. 关于本书
  10. 本书的组织结构
  11. 目标读者
  12. 如何阅读本书
  13. 代码约定
  14. 软件要求
  15. 资源与支持
  16. 配套资源
  17. 提交勘误
  18. 与我们联系
  19. 关于异步社区和异步图书
  20. 第1章 你好,C++并发世界
  21. 1.1 什么是并发
  22. 1.2 为什么使用并发技术
  23. 1.3 并发与C++多线程
  24. 1.4 启程上路
  25. 1.5 小结
  26. 第2章 线程管控
  27. 2.1 线程的基本管控
  28. 2.2 向线程函数传递参数
  29. 2.3 移交线程归属权
  30. 2.4 在运行时选择线程数量
  31. 2.5 识别线程
  32. 2.6 小结
  33. 第3章 在线程间共享数据
  34. 3.1 线程间共享数据的问题
  35. 3.2 用互斥保护共享数据
  36. 3.3 保护共享数据的其他工具
  37. 3.4 小结
  38. 第4章 并发操作的同步
  39. 4.1 等待事件或等待其他条件
  40. 4.2 使用future等待一次性事件发生
  41. 4.3 限时等待
  42. 4.4 运用同步操作简化代码
  43. 4.5 小结
  44. 第5章 C++内存模型和原子操作
  45. 5.1 内存模型基础
  46. 5.2 C++中的原子操作及其类别
  47. 5.3 同步操作和强制次序
  48. 5.4 小结
  49. 第6章 设计基于锁的并发数据结构
  50. 6.1 并发设计的内涵
  51. 6.2 基于锁的并发数据结构
  52. 6.3 设计更复杂的基于锁的并发数据结构
  53. 6.4 小结
  54. 第7章 设计无锁数据结构
  55. 7.1 定义和推论
  56. 7.2 无锁数据结构范例
  57. 7.3 实现无锁数据结构的原则
  58. 7.4 小结
  59. 第8章 设计并发代码
  60. 8.1 在线程间切分任务的方法
  61. 8.2 影响并发代码性能的因素
  62. 8.3 设计数据结构以提升多线程程序的性能
  63. 8.4 设计并发代码时要额外考虑的因素
  64. 8.5 并发代码的设计实践
  65. 8.6 小结
  66. 第9章 高级线程管理
  67. 9.1 线程池
  68. 9.2 中断线程
  69. 9.3 小结
  70. 第10章 并行算法函数
  71. 10.1 并行化的标准库算法函数
  72. 10.2 执行策略
  73. 10.3 C++标准库的并行算法函数
  74. 10.4 小结
  75. 第11章 多线程应用的测试和除错
  76. 11.1 与并发相关的错误类型
  77. 11.2 定位并发相关的错误的技法
  78. 11.3 小结
  79. 附录A C++11精要:部分语言特性
  80. A.1 右值引用
  81. A.2 删除函数
  82. A.3 默认函数
  83. A.4 常量表达式函数
  84. A.5 lambda函数
  85. A.6 变参模板
  86. A.7 自动推导变量的型别
  87. A.8 线程局部变量
  88. A.9 类模板的参数推导
  89. A.10 小结
  90. 附录B 各并发程序库的简要对比
  91. 附录C 消息传递程序库和完整的自动柜员机范例
  92. 附录D C++11线程库参考名录
  93. D.1 <chrono>头文件
  94. D.2 <condition_variable>头文件
  95. D.3 <atomic>头文件
  96. D.4 <future>头文件
  97. D.5 <mutex>头文件
  98. D.6 <ratio>头文件
  99. D.7 <thread>头文件