编辑器:Notepad++;学习视频:毕向东Java基础教程
/*
单例设计模式下的多线程问题
*/
//饿汉式
/*
不存在多线程的安全问题
*/
class Single1
{
private Single1(){};
private static final Single1 s = new Single1();
public static Single1 getInstance1()
{
return s;
}
}
//懒汉式,面试用
/*
采用双重判断+同步得到方法解决懒汉式的多线程安全问题
外层的if解决效率问题,里层的同步解决安全问题
*/
class Single2
{
private Single2(){};
private static Single2 s = null;
public static Single2 getInstance2()
{
if(s==null)
{
Synchronized(Single2.class)
{
if(s==null)
s = new Single2()
}
}
return s;
}
}