Demo15_单例懒汉式并发访问

package test06;

public class Demo15_单例懒汉式并发访问 {

public static void main(String[] args) {

}

}
//饿汉式 多线程并发没问题
class Single
{
private static final Single s = new Single();
private Single(){}
public static Single getIntance()
{
return s ;
}
}
//懒汉式
class Single2
{
private static Single2 s2 = null;
private Single2(){}
// 并发执行会有隐患 所以加入了同步机制解决安全问题
// 但是同步的出现降低了效率
public static synchronized Single2 getIntance()
{
if(s2==null)//线程为空执行判断语句 不为空不执行 减少判断次数
{
synchronized(Single2.class)
{
if(s2==null)
s2 = new Single2();
}
}

    return s2 ;
}

}
class ADD implements Runnable
{
public void run()
{
Single.getIntance();
}
}

猜你喜欢

转载自blog.csdn.net/mingxu_W/article/details/81710503