什么是 C++ 原子变量?

What is a C++ atomic variable?

这是 std::atomic 的文档:http://en.cppreference.com/w/cpp/atomic/atomic

阅读其他问题我收集到的是它会生成某种特殊的机器指令(即锁定添加),因此您不必在变量周围使用互斥量。

我想知道它是如何工作的,使用它们有什么限制?

这个话题真的可以写一本书。您可能不会以这种格式得到任何明确的答案。

查看 Herb Sutters 视频,这些确实是我见过的关于该主题的最清晰的讨论:

https://herbsutter.com/2013/02/11/atomic-weapons-the-c-memory-model-and-modern-hardware/

查看 "Part 1" 和 "Part 2" 的链接。