C++11多线程 内存序(std::memory_order_seq_cst )

C++11多线程内存序

  • 内存模型
    • 为什么要有内存模型
      • C++11的内存模型种类
  • 各个内存模型介绍及代码测试
    • memory_order_seq_cst 顺序一致性模型

内存模型

内存模型定义了对于并发程序执行的任何给定写操作集允许读操作返回的可能值,从而定义了共享变量的基本语义。

换句话说,内存模型指定了程序读写操作的一组允许输出,并限制了一个实现只产生(但至少一个)这样的允许执行。

更具体一点的说:

内存模型可以由两部分构成:编程语言内存模型和硬件内存模型。

编程语言内存模型: 定义在将程序转换为二进制代码时允许编译器执行的优化、内存访问重写和重新排序。

硬件内存模型: 定义允许特定硬件架构执行的优化和内存访问重新排序。

为什么要有内存模型

多线程环境下,如果保持顺序一致性会降低CPU性能,代价很大,

你可能感兴趣的:(C++多线程,c++,多线程,内存模型)