论坛首页 入门技术论坛

java线程死锁与内存溢出

浏览 36015 次
该帖已经被评为新手帖
作者 正文
   发表时间:2009-11-15   最后修改:2009-11-15
movingboy 写道
jjx333 写道
wangneng_001 写道
你那个broker不一定是单例,虽说你那样写看起来像。。。

单例要么在单例类中写一个自身引用并在构造方法中new一个实例赋予引用,给予一个方法getInstance()或其他什么return这个引用以获取单例,不用同步什么什么的,因为此实例在类加载的时候就初始化了,这就是所谓的饿汉式单例模式,但这种模式有个不好的地方就是当出现误操作(比如将此引用设置为null),这个实例你就不可能再实例化了。

还有就是所谓的懒汉式,在getInstance()方法中判断:
private static Factory instance = null;

//此类为单例模式,只能通过此方法获取实例
public static Factory getInstance(){
//双锁检测单例模式
if(instance==null){
synchronized(Factory.class){
if(instance==null){
instance = new Factory();
}
}
}
return instance;
}

ls的是不是
双重检查锁定?
这种方法已经不推荐了!

我有点好奇为什么说“双重检查锁定这种方法已经不推荐了!”,能否说明一下?或者给点相关的文章或讨论的链接?



BING 上随便搜的一篇 

http://developer.51cto.com/art/200908/143471.htm
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics