我有一个线程安全的计数器对象(它是一个使用 std::atomic load() 和 store() 的类)作为类成员之一。线程 1 递增计数器,线程 2 读取计数器。
通常,由不同线程共享的原始类型( int 等)被声明为 volatile 以防止任何编译器优化。我是否必须将这个由 2 个不同线程共享的线程安全计数器对象声明为 volatile ?
有人可以对此提供更多见解吗?
我有一个线程安全的计数器对象(它是一个使用 std::atomic load() 和 store() 的类)作为类成员之一。线程 1 递增计数器,线程 2 读取计数器。
通常,由不同线程共享的原始类型( int 等)被声明为 volatile 以防止任何编译器优化。我是否必须将这个由 2 个不同线程共享的线程安全计数器对象声明为 volatile ?
有人可以对此提供更多见解吗?