java - 多核与单处理器中的 volatile 关键字?

标签 java multithreading concurrency volatile

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

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

最佳答案

“volatile感”与核心数无关。 JVM 隐藏了底层架构。更不用说 volatile 是一种语言关键字,因此它在每种架构上的行为都应该相同。

您描述了 volatile 的作用,这是正确的。可能需要使用 volatile 的应用程序架构,仅此而已。

如果您有兴趣,这里有一篇与 volatile 以及 Java 中使用的内存模型的基本概念相关的精彩帖子。

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

关于java - 多核与单处理器中的 volatile 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23593061/

相关文章:

javascript - Node.js:可控并发while循环

java - 如何改变JFrame图标的大小

java - Spring MVC : @Value annotation with final variable

java - Netbeans - Oracle 数据库 - AWS "amazon RDB "- java 8

c++ - 在运行时本地启用/禁用 OpenMP

java - 如何根据并发用户的数据库寄存器创建序列号

cuda - 使用 OpenCL 的累积数组求和

javascript - Spring MVC 中的 Ajax post 请求

python - 是否可以在 Thread 调用中使用内联函数?

Java 多线程和添加静态字段