C++并发编程

  |  

摘要: 《C++ Concurrency in Action》

【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】
我的网站:潮汐朝夕的生活实验室
我的公众号:算法题刷刷
我的知乎:潮汐朝夕
我的github:FennelDumplings
我的leetcode:FennelDumplings




线程管理

  • 线程管理的基础
  • 向线程函数传递参数
  • 转移线程所有权
  • 运行时决定线程数量
  • 识别线程

线程间共享数据

  • 共享数据带来的问题
  • 使用互斥量保护共享数据
  • 保护共享数据的替代设施

同步并发操作

  • 等待一个事件或其他条件
  • 使用期望等待一次性事件
  • 限定等待时间
  • 使用同步操作简化代码

C++内存模型和原子类型操作

  • 内存模型基础
  • C++中的原子操作和原子类型
  • 同步操作和强制排序

基于锁的并发数据结构设计

  • 为并发设计的意义何在
  • 基于锁的并发数据结构
  • 基于锁设计更加复杂的数据结构

无锁并发数据结构设计

  • 定义和意义
  • 无锁数据结构的例子
  • 对于设计无锁数据结构的指导建议

并发代码设计

  • 线程间划分工作的技术
  • 如何让数据紧凑
  • 为多线程性能设计数据结构
  • 设计并发代码的注意事项
  • 在实践中设计并发代码

高级线程管理

  • 线程池
  • 中断线程

多线程程序的测试和调试

  • 与并发相关的错误类型
  • 定位并发错误的技术

C++11语言特性

  • 右值引用
  • 删除函数
  • 默认函数
  • 常量表达式函数
  • Lambda函数
  • 变参模板
  • 自动推导变量类型
  • 线程本地变量

C++线程类库参考

  • chrono头文件
  • condition_variable头文件
  • atomic头文件
  • future头文件
  • mutex头文件
  • ratio头文件
  • thread头文件

Share