Ale*_*.B. 9 java multithreading android thread-safety dagger-2
我试图将我的应用程序中的所有内容从单例中移开,因为我已经意识到这是一个糟糕的编程习惯,据说,我正在考虑实现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;
}
Run Code Online (Sandbox Code Playgroud)
就同步而言,是Dagger 2 @Singleton的等价物吗?
正如 Artem Zinnatullin 在他的回答中提到的 - @Singleton 类的实例创建在 Dagger 中是线程安全的。
但是如果你要接触来自不同线程的单例,你必须自己确保它的线程安全。否则匕首不会帮助你。
通常,@Singleton 注释对于其他开发人员来说意味着可以从不同的线程使用此类。
| 归档时间: |
|
| 查看次数: |
1906 次 |
| 最近记录: |