gpt4 book ai didi

java - 32/64位jvm上java原语的大小?

转载 作者:IT老高 更新时间:2023-10-28 20:46:29 24 4
gpt4 key购买 nike

  1. int 的大小为 32 位,long/double 的大小为 64 位。这些尺寸是否会保持不变
    1. 32/64 位 JVM
    2. 32/64 位处理器
  2. 如果是,那么 long/double 上的操作在 64 位处理器/JVM 上是否是原子操作?

Oracle Java tutorial says :

Reads and writes are atomic for reference variables and for most primitive variables (all types except long and double).

这句话与 jvm/处理器架构有什么关系吗?谁能解释一下。

3.最后,如果我使用 64 位 jvm 和处理器,我将能够读/写双/长原子吗

最佳答案

是的,大小在 32 位和 64 位 JVM 上是相同的。对于 Java 中的 long 或 double,赋值不保证是原子的。原子分配,仍然不能保证来自另一个线程的可见性。因为线程被允许在内存中“隐藏”变量,所以即使对变量进行原子分配也不一定会直接写入主内存(但是当主内存更新时,它会以原子方式完成)。 必须在从两个或多个线程访问共享状态时始终使用某种同步屏障,如果您希望一个线程始终看到另一个线程的更改。

关于java - 32/64位jvm上java原语的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9511836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com