package Thread;
/*
单例设计模式:懒汉式并发运行时的安全问题
*/
//饿汉式设计模式
class Single1{
private Single1(){}
private final static Single1 S1 = new Single1();
public static Single1 getSing(){
return S1;
}
}
//懒汉式设计模式
class Single2{
private Single2(){}
private static Single2 S2 = null;
public synchronized static Single2 getSingle(){
if(S2==null){
S2 = new Single2();
}
return S2;
}
}
class ThreadDemo implements Runnable{
public void run(){
//Single1 S =Single1.getSing();
/*
饿汉式并发运行时不会出现安全问题:1.有共享数据 实例 S1 2.但是对共享数据的操作代码已有一行,不会出现CPU切换导致的数据错误
*/
Single2 S =Single2.getSingle();
/*
懒汉式并发运行会发生并发运行时的安全问题:1.有共享数据 S2。 2对共享数据的操作代码不只一行
安全问题是:实例不再是唯一的————单例设计模式废掉
*/
}
}
public class ThreadSingle {
public static void main(String[] args){
ThreadDem
Java多线程7 单例懒汉式的并发访问
最新推荐文章于 2021-12-29 01:06:24 发布
本文探讨了Java中懒汉式单例模式在并发环境下的效率问题,通过双重判断和同步机制的结合,实现既保证线程安全又减少锁的使用,从而提高效率。通过无限循环或大循环次数的线程任务来演示这种优化的效果。
摘要由CSDN通过智能技术生成