package com.brianway.learning.java.multithread.singleton.example2; /** * Created by Brian on 2016/4/16. */ public class MyObject3 { private static MyObject3 myObject; private MyObject3() { } public static MyObject3 getInstance() { try { if (myObject == null) { Thread.sleep(3000);//模拟创建对象前的坐一些准备 //虽然部分代码被上锁,但还是有非线程安全问题 synchronized (MyObject3.class) { myObject = new MyObject3(); } } } catch (InterruptedException e) { e.printStackTrace(); } return myObject; } }