1
letianqiu 2023-08-14 14:25:38 +08:00
Java 的 memory model 和 micro-architecture 的 memory model 是不同的。x86 是 total store ordering ,arm 是 weak memory order 。但是对于 Java 来说,jvm 实现保证了在 x86 和 arm 上都符合 Java Memory Model 的 spec 。回到你的问题,你这段代码里,a 和 b 既不是 volatile 的,同时 read/write 也没有用 atomic/lock ,所以不存在 happens-before 的关系。四种情况都是可能的。
|