C++ 多线程笔记2
Note
condition_variable.wait(mutex, bool_condition)
- 调用前
mutex已加锁。 - 检查参数是否为 ture。
- 是则往下执行;否则先解锁并等待,至
notify_one/all()唤醒,重新加锁并检查条件参数,循环判断直至 ture。
1 |
|
Note
std::atomic<T> 用来在多线程环境中安全地读写共享变量,保证所有操作都是原子的,不需要加锁。其中 .store() 和 = 语义一致,= 已重载为 store() 是原子操作,但使用 .store() / .load() 更专业。
Note
原子性:一个操作或全部完成,或完全不做,中间不能被打断或看到不完整的中间状态。是线程安全的必要不充分条件。
代码优化
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 逸人の博客!
评论

