我正在使用 linux,我有两个在另一个线程中读/写的变量。偶尔(100 毫秒)ThreadB 会读取变量的状态并执行一些操作。它基本上是一个while(1){ dosomething(); usleep(); }
. 我担心变量会被缓存并且永远不会更新。
确保优化后循环正常工作的最佳方法是什么?我在想volatile
应该做这项工作,但我听说它有时不起作用。两个循环都不经常运行(10ms+)。访问它们的最简单直接的方法是什么?我正在使用 C++11
我有点不确定如何使用std::atomic<int>
. 我可以像普通的 int 变量一样使用它,它会按预期工作吗?