点击访问我的网站,查看效果 上海驾校
1、 相对安全
class SingletonTest {
private static SingletonTest sg = new SingletonTest();//在调用类时,世界加载
private SingletonTest(){
//使用private 锁住new SingletonTest()方法
}
public static SingletonTest getInstance(){ //使用静态方法生成类
return sg;
}
}
2、相对不安全
class SingletonTest {
private static SingletonTest sg ;
private SingletonTest(){
}
public static SingletonTest getInstance(){
if(sg == null){
return new SingletonTest();
}return sg;
}
}
这种形式如果在多线程环境下,可能会不能单例化。如:当对象为空,两个线程同时进入if(sg == null)语句
本文深入分析了单例模式在多线程环境下的实现方式及潜在的安全隐患,通过实例对比了两种不同的单例模式实现方法,并详细解释了它们在多线程环境下的工作原理及可能引发的问题。
819

被折叠的 条评论
为什么被折叠?



