我读过 this和 this回答。我还搜索了这本书 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/