直接看代码吧
//单例设计模式中懒汉式并发访问的安全问题 //饿汉式 class Sinlge { private static final Single s = new Single(); private Single(){} public static Single getInstance() { return s; } } class Single2 { private static Single2 s; private Single2(){} public static Single2 getInstance() { //这里为了提高程序性能,因为判断同步锁是比较费时的 if(s==null)//t1 t2 t3 至少从第三个线程开始就不用判断锁了 { synchronized(Single2.class) { if(s==null) { s = new Single2(); } } } return s; } } class Test implements Runnable { public void run() { Single s = Single.getInstance(); } } class Demo8 { public static void main(String[] args) { Test test = new Test(); Thread t1 = new Thread(test); Thread t2 = new Thread(test); t1.start(); t2.start(); } }