CppConcurrence
latest
线程管理
线程间共享数据
同步并发操作
C++内存模型和基于原子类型的操作
基于锁的并发数据结构的设计
无锁并发数据结构的设计
并发代码的设计
高级线程管理
并行算法
多线程应用的测试与调试
附录
CppConcurrence
Docs
»
C++ 并发编程实战
Edit on GitHub
C++ 并发编程实战
¶
Contents:
线程管理
线程管理基础
为线程传递参数
转移线程所有权
运行期选择线程数量
线程标识
线程间共享数据
线程间共享数据存在的问题
使用mutex保护数据
死锁
其他保护共享数据的可选方式
同步并发操作
等待一个事件或其他条件
使用期值等待一次性事件
限定等待时间
使用同步操作简化代码
std::experimental
C++内存模型和基于原子类型的操作
内存模型基础
C++ 中的原子操作和原子类型
同步操作和强制排序
基于锁的并发数据结构的设计
设计并发数据结构的建议
使用锁实现thread-safe stack
使用锁和条件变量实现thread-safe queue
使用细粒度锁和条件变量实现thread-safe queue
使用锁实现thread-safe lookup table
使用锁实现thread-safe list
无锁并发数据结构的设计
非阻塞数据结构
lock-free thread-safe stack
lock-free thread-safe queue
并发代码的设计
线程间的工作划分
影响并发代码性能的因素
适用多线程性能的数据结构
并发设计的其他注意事项
实践
高级线程管理
线程池
中断
并行算法
执行策略
标准库并行算法
多线程应用的测试与调试
并发相关的bug类型
定位bug的方法
附录
标准库相关头文件
并发库对比