【问题标题】:Initialization-on-demand holder with Android (Dalvik or ART)?使用 Android(Dalvik 或 ART)的按需初始化持有者?
【发布时间】:2017-02-22 06:18:52
【问题描述】:

我知道按需初始化持有者习语是实现“单例”的好方法。 https://en.wikipedia.org/wiki/Initialization-on-demand_holder_idiom

但我不确定在 Android(Dalvik 或 ART)中使用它是否也安全。

只有我发现,在 JVM 上使用是安全的。
http://literatejava.com/jvm/fastest-threadsafe-singleton-jvm/

有人知道按需初始化持有者习语在 dalvik 上是否安全?

任何帮助将不胜感激。


已编辑:

换句话说,Dalvik 和 ART 是否保证 (1) 线程安全、(2) 可重入和 (3) 静态内部类的静态成员的唯一性?

【问题讨论】:

标签: android jvm dalvik


【解决方案1】:

请找到类似的答案,它可能会解决您的疑问

Is Initialization On Demand Holder idiom thread safe without a final modifier

class initialization procedure 保证如果使用静态初始化程序(即静态变量 = someValue;)设置静态字段的值,则该值对所有线程都是可见的:

【讨论】:

  • 感谢您的回答。在 Java 虚拟机 (JVM) 世界中,这是正确的。但我不确定,在 Dalvik 虚拟机或 Android 运行时虚拟机 (ART) 上是否相同。
猜你喜欢
  • 2016-06-03
  • 2014-11-25
  • 2015-06-14
  • 2013-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-08
  • 1970-01-01
相关资源
最近更新 更多