Dalvik的内存模型与Java相同吗?

Dan*_*ien 30 java android memory-model dalvik java-memory-model

Dalvik的内存模型与Java相同吗?我特别感兴趣的是否读取和写入参考和非long/非double原始变量是原子,但我也想知道有没有这两个平台的内存模型之间的差异.

fad*_*den 61

从4.0(冰淇淋三明治)开始,Dalvik的行为应该与JSR-133(Java内存模型)相匹配.

从3.0(Honeycomb)开始,大部分都已到位,但是在实践中很难忽略一些小的事情(例如最终确定的一些边缘案例).

从2.3(Gingerbread)开始,Dalvik在单处理器上通常是正确的,但final缺少在SMP硬件上正确行为所需的一些关键特性(例如适当的现场处理).

前姜饼,根本没有记忆障碍,基本的东西就像volatile long被打破了.

  • 模糊相关:Android + SMP Primer,网址为http://developer.android.com/training/articles/smp.html (9认同)
  • @fadden用volatile检查双重检查怎么办?喜欢这里描述http://en.wikipedia.org/wiki/Double-checked_locking#Usage_in_Java它会在Android上运行吗?任何版本?它会用于ART吗? (3认同)

Tom*_*son 13

Dalvik来源中一份文件说:

从用Java编程语言编写的代码或以与.class文件相同的方式定位的代码的角度来看,Dalvik VM旨在以与语言定义完全一致的方式运行.也就是说,在Dalvik中运行的代码将与在任何其他虚拟机中运行的代码相同.

这应该意味着行为与适当的Java相同.无论是否真的,我都不知道.