多核与单处理器中的易失性关键字?

M S*_*ach 8 java concurrency multithreading volatile

我听过很多人说多变量处理器中的volatile关键字比单核处理器更有意义,但不知道原因.我试图谷歌但在这方面没有帮助.有什么理由吗?

根据我的理解,无论是多核还是单处理器,volatile关键字应该具有同等重要性.原因是volatile,它保证值将在主内存(堆)中更新,而不是保留在线程本地内存(堆栈)中,这可以被所有线程看到.那么无论是多核还是单处理器,它如何产生差异?

kup*_*sef 7

"易变性"与核心数量无关.JVM隐藏了底层架构.更不用说volatile是一个语言关键字,因此它应该在每个架构上都表现相同.

你描述了volatile的作用,它是正确的.应用程序体系结构可能需要使用volatile,没有别的.

如果您有兴趣,这里有一篇关于volatile的好文章,以及Java中使用的内存模型的基本概念.

http://jeremymanson.blogspot.hu/2008/11/what-volatile-means-in-java.html