gpt4 book ai didi

java - Dagger 2 中的@Singleton 线程安全吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:38 25 4
gpt4 key购买 nike

我正在尝试将我的应用程序中的所有内容从单例中移开,因为我已经意识到这是一种糟糕的编程习惯,话虽如此,我正在考虑实现 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com