【发布时间】:2015-07-26 05:55:32
【问题描述】:
我正在尝试将我的应用程序中的所有内容从单例中移开,因为我已经意识到这是一种糟糕的编程习惯,话虽如此,我正在研究实现 Dagger 2 依赖注入。而且我想知道,当您在 Dagger 2 中执行 @Singleton 时,该线程是否已同步?如果不是,我怎么能同步它,所以我不会从多个线程接触相同的东西得到任何奇怪的数据异常。
当我在做这样的事情之前创建单例时:
public class SomeSinglton {
private static ClassName sInstance;
private SomeSinglton () {
}
public static synchronized ClassName getInstance() {
if (sInstance == null) {
sInstance = new ClassName();
}
return sInstance;
}
就同步而言,Dagger 2 @Singleton 是否等效?
【问题讨论】:
-
您确定该方法需要同步,而不是 sIntance?也许我错了,但根据我的经验,我会说同步不在正确的地方,但如果我错了,我想知道为什么
标签: java android multithreading thread-safety dagger-2