第1章 C++并发入门
1. 并发
并发方式
- 多进程: 资源分配基本单位
- 多线程: 调度基本单位
- 协程: 轻量级线程
进程独立内存空间和资源, 线程共享进程内容空间和资源
2. 并发优缺点
功能分离
例: 游戏程序中, 一个线程只负责界面管理, 一个线程只负责 gameplay
性能提升
- 算法并行: 多个过程并行执行
- 数据并行: 多个数据并行处理
并发缺点
- 开发维护难
- 消耗资源 内存, IO, CPU, 线程切换开销
3. C++ 与并发
- 内存模型
- 线程管理
- 线程同步
- 锁
- 原子操作
- 并行算法函数
4. hello world
#include <thread>
std::thread t(fun); // 启动并管理线程, 线程执行 `fun` 函数
t.join(); // t.join() 等待线程执行完