作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试将我的应用程序中的所有内容从单例中移开,因为我已经意识到这是一种糟糕的编程习惯,话虽如此,我正在考虑实现 Dagger 2 依赖项注入(inject)。我想知道,当你在 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 是否等效?
最佳答案
是的,Dagger 2 中的 @Singleton
是线程安全的,具有双重检查锁定,与 Dagger 1 中相同。参见 ScopedProvider
.
关于java - Dagger 2 中的@Singleton 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30240338/
我是一名优秀的程序员,十分优秀!