论坛首页 Java企业应用论坛

java单例模式

浏览 12811 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (16) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-01-28  
yangguo 写道
whaosoft 写道
my_niuniu 写道
lyw985 写道

单例代码如下:

 

public class Singleton {  
  private static Singleton s=new Singleton(); 
  private Singleton(){};
  /**
   * Class method to access the singleton instance of the class.
   */
  public static Singleton getInstance() {
    return s;
  }
}

 完全不用考虑同步问题

正解。楼主的方法线程不安全,需要在方法上加同步,但会严重影响效率。

这个方法那你得但愿类加载器是一个。。

 

95%都是一个,蛋疼才去加几个。

你都 用95%了,一点都不肯定,,,那不是有时你蛋疼。。。

0 请登录后投票
   发表时间:2011-01-28  
chenyong0214 写道
Crusader 写道
public class Singleton {

	private volatile static Singleton singleton;
	
	private Singleton(){ }
	
	public static Singleton getInstance(){
		// 双重检查加锁
		if(singleton==null){
			synchronized(Singleton.class){
				// 延迟实例化,需要时才创建
				if(singleton==null)
					singleton = new Singleton();
			}
		}
		return singleton;
	}
}



好像有几篇文章论述了java中DCL不可实现


为什么不能实现双重加锁,望详细说说
0 请登录后投票
   发表时间:2011-01-28  
看这帖时候我就知道又有人讨论DCL,我是不是开始有第六感了。
0 请登录后投票
   发表时间:2011-01-30  
关于DCL这里有很详细的介绍和解释,wish to help。http://www.iteye.com/topic/875420
0 请登录后投票
论坛首页 Java企业应用版

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