当我们使用多线程环境时,每个线程都会在它们处理的变量的本地缓存上创建自己的副本。当更新此值时,更新首先发生在本地缓存副本中,而不是在实际变量中。因此,其他线程不知道其他线程正在更改的值。这就是volatile出现在图片中的地方。易失性字段立即写入主内存,并从主内存读取。来自Thinking In Java<em
我通常是这样写代码的:{
public static void Main()我想知道是否真的有必要这样做(假设在DoStuff()中运行一两个额外的循环不会有任何坏处)。如果代码完全像这样执行,最坏的情况是什么?我曾考虑过为m_stop使用volatile关键字,但我不确定是否有必要这样做。有没有人确定?