Java规范允许编译器和VM为了效率而重新排序内存写入。 Dalvik VM是否具体考虑了这一点?
免责声明:即使Dalvik没有这样做,我也无意依赖订单(除了编译器也可以这样做),但是很高兴知道。
答案 0 :(得分:2)
Dalvik翻译不会重新排序。 JIT编译器可能。
在具有多个CPU的设备上真正变得古怪的是,因为ARM内存一致性模型相当薄弱。在这样的环境中,即使只使用解释器,您也可以观察到无序的内存访问。
如果JSR-133(JMM)文档说你不能依赖某些东西,那就不要依赖它。 : - )