懒汉式单例设计模式存在的安全问题解决方式
package dengfeng.com.day23biji; import javax.sound.midi.Track; public class Demo1_Single { public static void main(String[] args) { //懒汉式单例设计模式存在的安全问题解决方式 new Thread(new Runnable() { public void run() { System.out.println(Thread.currentThread().getName()+"="+Single1.getSingle()); } } ,"one").start(); new Thread(new Runnable() { public void run() { System.out.println(Thread.currentThread().getName()+"="+Single1.getSingle()); } } ,"two").start(); } } class Single1 { //懒汉式单例设计模式 static Object lock=new Object(); private Single1(){ //将构造方法私有化 } private static Single1 se=null; //创建私有对象 public static Single1 getSingle(){ if(se==null){ synchronized (lock) { //懒汉式单例存在的安全问题,得上锁 if(se==null){ try { Thread.currentThread().sleep(1); } catch (Exception e) { e.printStackTrace(); } se=new Single1(); } } } return se; } }