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;
}
}