gpt4 book ai didi

java - 线程安全方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:59:05 24 4
gpt4 key购买 nike

我目前有一个实现单例设计模式的程序:

public class Singleton {
private static Singleton s;

private Singleton(){

}

public static Singleton getInstance(){
if(s == null){
s = new Singleton();
}

return s;
}
}

我在一次采访中被问到,给定一个这样的程序,有哪些好的选项可以使 getInstance 方法线程安全。我知道一种方法就是在方法之前标记同步,但是面试官说还有其他更有效的方法来处理使方法线程安全的问题。

任何人都可以提供任何想法吗?

最佳答案

我至少能想到三个,尽管其中两个归结为相同的原则。

基本上,您可以让类加载器担心线程安全,或者从 Java5 开始使用双重检查锁定。

第一个版本意味着拥有一个包含实际代码的内部类/枚举,第二个版本意味着您使 Singleton 实例可变并使用通常的 if-synchronize-if 解决方案。

关于java - 线程安全方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9321835/

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