C++ atomic 和 memory ordering

Posted 北极乌布的研究记录

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ atomic 和 memory ordering相关的知识,希望对你有一定的参考价值。

如果不使用任何同步机制(例如 mutex 或 atomic),在多线程中读写同一个变量,那么,程序的结果是难以预料的。简单来说,编译器以及 CPU 的一些行为,会影响到程序的执行结果: 即使是简单的语句,C++ 也不保证是原子操作。 CPU 可能会调整指令的执行顺序。 在 CPU cache 的影响

以上是关于C++ atomic 和 memory ordering的主要内容,如果未能解决你的问题,请参考以下文章

C++ atomic memory model和Arm实现方式

比较和交换 C++0x

C++11 memory_order_acquire 和 memory_order_release 语义?

从 C++ 中的另一个线程读取指针

C++ 在两个不同的变量上使用 memory_order_relaxed

fetch_sub 和 memory_order_relaxed 用于原子引用计数?