您当前位置:设计在线网 >> JavaScript >> 浏览文章

怎样利用Java实现单例模式

分享到:
本文章讲述了怎样利用Java实现单例模式.

下文将

给大家介绍怎样利用Java实现单例模式 ,直接上代码:

 public class Configuration {

private static final Configuration instance = null;

private Configuration() {

// init

}

public static Configuration getInstnace() {

if (instance == null) {

synchronized(this) {

instance = new Configuration();

}

}

return instance;

}

// .. other methods

}

由于将同步放在了判断之后,这样就减少了可能产生同步的机会。实际上,在大多数情况下(单例已经完成了初始化之后的调用),只需要一个简单的判断,对于性能的影响是非常小的。这样就解决了很多情况下,我们既希望能够延迟加载单例,又不希望系统性能受到较大影响的问题。   但上面的代码在极端的多线程情况下还是会有问题,原因是在获得同步锁以后没有再一次检测instance是否为空 的情况,这样就有可能会实例化两个对象,违背了单例模式的初衷。当然,解决起来也很简单,就是在取得锁以后再做一次判断。如下面的代码:

public class Configuration {

private static final Configuration instance = null;

private Configuration() {

// init

}

public static Configuration getInstnace() {

if (instance == null) {

synchronized(this) {

if (instance == null) {

instance = new Configuration();

}

}

}

return instance;

}

// .. other methods

}

推荐阅读:
Java如何获取URL对应的资源
EJB的存根和骨架的工作原理详解
javascript函数 可选参数

相关文章:

推荐文章  
赞助商链接  
热门排行  
主题推广  
中国设计在线网 All Rights Reserved. 互联网违法和不良信息举报
信息产业部备案号:湘ICP备09001063号