单例模式在Java中的实现(四)
来源:广州中睿信息技术有限公司
发布时间:2012/10/21 23:25:16 编辑:itlead 阅读 2277



  在上一篇文章中,我们向大家介绍了支持延迟加载(初始化)的单例模式的特点及其存在的问题,如下面的代码:

  

  注意getInstance方法,我们增加了synchronized关键字将getInstance方法进行同步,从而避免多个线程调用同时进入方法。这个方法可以解决多线程环境中可能产生多实例的问题,但它引入的问题却是容易造成系统的性能瓶颈。因为无论该单例是否被实例化过了,只要调用getInstance方法就会被同步,这样显然是没有必要的。因为更优化的方法是只在判断单例没有被实例化时进行同步,代码如下: