java - Long、Double 和 64 位内存

标签 java multithreading jvm

Long 和 double 需要 64 位内存。这导致这些类型需要两个地址空间。

在 64 位 jvm 上,情况仍然如此吗?由于这些值现在可以放入单个地址空间中 这意味着这些类型现在存储在单个地址空间中?

这对线程有影响吗?在这些类型上需要使用 volatile 来确保 每个单独的地址空间都没有乱序更新?

最佳答案

情况仍然如此。 64 位 jvm 的 jvm 规范未更改:

https://docs.oracle.com/javase/specs/jls/se7/html/jls-17.html#jls-17.7

关于java - Long、Double 和 64 位内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30105934/

相关文章:

java - 在 Java 运行时向最终静态 HashSet 添加(或删除)对象?

python - 当主线程调用 sys.exit() 时,守护线程是否会被终止?

c# - "right"是什么方法可以在事件发生后将 C# 中的方法运行延迟一段时间,同时仍让原始线程运行?

Maven Surefire 插件在 java 11 上导致 jvm 崩溃(通过直接写入 fork JVM 1 中的 native 流而损坏 STDOUT)

java - Xmx 和 gc 日志数据不匹配

java - 仅更新 hibernate 中给出的行数

java - 无法使用 EasyMock 为内部类编写测试用例

eclipse - 如何使应用程序适用于任何 Java 版本?

java - 这应该是不稳定的还是结果不可预测?

java - List上hashCode()的JVM优化