我觉得不考虑多线程的话,这里的懒汉模式已经足够。加 synchronized 也不是唯一的做lazy init 的方式。
2014-12-03
线程不安全是因为,没有在懒汉模式那里加一个同步块,而且没有加同步块和再加一个判断的话,这里的懒汉模式并不是真正意义上的单例模式~~
2014-11-25
最赞回答 / jamesdeath123
如果两个线程 threadA和 threadB分别开始执行初始化:threadA: if (instance == null) 是真,然后进入条件区里面里面,在它还没有到初始化那一步的时候,跳到 threadB:这时(instance==null)对threadB仍然是真,于是也进入到条件区里面。接下来 threadA和threadB接下来先后执行instance = new ... 就会分别给两个线程两个不同的instance了。
2014-10-31