多线程感知模型(multithreading-aware memory model)是C++11最重要的特性特性之一, 以下介绍它的要点信息:
- Synchronization Primitives:同步原语
- mutex 和 condition variable 等同步原语可以用来保护数据和信号事件(signal events).
- Atomic Operations and Fences:原子操作和栅栏
- 内存模型定义的两种新的可移植方法来同步多线程环境中的内存访问.
- 可使用 atomic load/store 在指定内存位置进行读写操作。
- Atomic Types & Operations:原子类型和操作
- C++ 标准库提供原子类型
- 这些类型上可用的操作,以及如何使用这些操作在线程之间提供同步.
- C++ Tutorial => C++11 Memory Model (riptutorial.com)
- Semantics of Memory Access: 内存访问语义
- C++11内存模型对内存访问的语义做出了最小的保证.
- 它限制了优化对执行语义的潜在影响,并讨论了程序员控制语义某些方面的技术,使得我们能够确保代码的正确性