为了提高效率,Java规范允许编译器和VM对内存写入进行重新排序。Dalvik VM是否利用了这一点?
免责声明:即使Dalvik不这样做,我也不打算依赖于顺序(此外,编译器可能也会这样做),但如果知道这一点会很好。
发布于 2010-10-20 06:47:52
Dalvik解释器不会重新排序任何内容。JIT编译器可能会。
真正让事情变得古怪的地方是在具有多CPU的设备上,因为ARM内存一致性模型非常弱。在这样的环境中,即使只使用解释器,您也可以观察到无序的内存访问。
如果JSR-133 (JMM)文档说您不能依赖某个东西,那么就不要依赖它。:-)
https://stackoverflow.com/questions/3965099
复制相似问题