根据我从 Herb Sutter 和 others 中读到的内容,您会认为 volatile
和并发编程是完全正交的概念,至少就 C/C++ 而言。
但是,在 GCC implementation 中,所有 std::atomic
的成员函数都具有 volatile
限定符。 Anthony Williams 的 implementation of std::atomic
也是如此。
那么怎么办,我的 atomic<>
变量是否需要为 volatile
?
最佳答案
为什么在整个 volatile
中使用 std::atomic
限定符?
这样 volatile 对象也可以是原子的。见 here :
相关报价是
我的 atomic<>
变量是否需要为 volatile
?
不,原子对象不必是可变的。
关于c++ - 为什么在整个 std::atomic 中使用 volatile 限定符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2479067/