c++ - 自 C++11 以来,volatile 在并发编程中的用处

标签 c++ c++11 concurrency volatile

我读过 thisthis回答。我还搜索了这本书 C++ Concurrency in Action并且没有找到关于 volatile 的讨论,也没有找到任何使用它的示例。看起来它根本不是为并发而设计的。那么对于并发编程,仅仅使用原子、互斥等就足够了,而忘记 volatile 吗?是否存在可能需要 volatile 来解决并发问题的情况?

最佳答案

不,在 C++ 中,volatile 关键字告诉编译器不得以任何方式优化变量。这在处理可以从您自己的代码外部更改的内存时非常有用,例如自定义板上的硬件寄存器。
有关 volatile 的更深入指南,您应该阅读 Volatile vs. volatile By Herb Sutter

关于c++ - 自 C++11 以来,volatile 在并发编程中的用处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48855471/

相关文章:

c++ - 为什么 gcc 对一个版本执行尾调用优化而不对另一个版本执行尾调用优化?

c++ - bitset 单个位线程对于每个单独的线程是否安全,可以一次写入?

c++ - 很多非类型模板参数

Java - 信号量的广泛使用

language-agnostic - 并发和并行有什么区别?

c++ - 为什么类中的initializer_list没有声明为 "const std::initializer_list & li"?

c++ - 函数模板修改用顶级 const 声明的参数 : clang bug?

c++ - 为什么这个返回nan?

java - 限制对数据库操作的并发 Web 服务调用

c++ - 绑定(bind)成员函数的地址