Dalvik的内存模型和Java的记忆模型一样吗?
2022-09-01 11:21:07
Dalvik的内存模型和Java的记忆模型一样吗?我特别感兴趣的是引用和非/非基元变量的读取和写入是否是原子的,但我也想知道两个平台的内存模型之间是否存在任何差异。long
double
Dalvik的内存模型和Java的记忆模型一样吗?我特别感兴趣的是引用和非/非基元变量的读取和写入是否是原子的,但我也想知道两个平台的内存模型之间是否存在任何差异。long
double
从4.0(Ice Cream Sandwich)开始,Dalvik的行为应该与JSR-133(Java Memory Model)相匹配。
截至3.0(Honeycomb),大多数部分都已到位,但一些小问题被忽略了,在实践中很难遇到(例如,在最终确定过程中的一些边缘情况)。
从2.3(姜饼)开始,Dalvik在单处理器上通常是正确的,但是在SMP硬件上正确行为所需的一些关键功能(例如正确的现场处理)缺失了。final
在姜饼之前,根本没有记忆障碍,像基本的东西被打破了。volatile long
从用Java编程语言编写的一段代码或以相同的方式.class文件的角度来看,Dalvik VM旨在以与语言定义完全一致的方式运行。也就是说,在 Dalvik 中运行的代码的行为将与在任何其他虚拟机中运行的代码相同。
这应该意味着行为与在适当的Java中相同。不管它是否真的是,我不知道。