How*_*owo 2 c++ mutex volatile
我知道C++中的volatile 是如何工作的.但是,我仍然对为什么我们需要挥发性感到困惑.我认为唯一的原因是我们需要监听变量是否发生了变化,如下面的代码所示:
volatile int some_int = 100;
while(some_int==100) {
doSomething()
}
Run Code Online (Sandbox Code Playgroud)
程序员需要知道some_int这个词是否改变了,所以他使用"volatile".我可以使用关键词"静态"吗?
大多数情况下,我认为如果在多线程中需要同步,我们应该互斥(锁定)以进行同步.请原谅我可怜的英文:)
程序员需要知道some_int这个词是否改变了,所以他使用"volatile".我可以使用关键词"静态"代替
volatile在C++ 98中用于并发编程,因为当时C++不支持多线程作为语言,并且副作用volatile有助于避免一些竞争条件,尽管没有保证它会/应该工作.由于C++ 11有工具与并发编程正常工作- std::mutex和std::atomic,所以你应该停止使用volatile了错误的目的.变量static完全不相关,不会直接影响副作用的存在.