锁定老帖子 主题:java单例模式
精华帖 (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%了,一点都不肯定,,,那不是有时你蛋疼。。。 |
|
返回顶楼 | |
发表时间: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不可实现 为什么不能实现双重加锁,望详细说说 |
|
返回顶楼 | |
发表时间:2011-01-28
看这帖时候我就知道又有人讨论DCL,我是不是开始有第六感了。
|
|
返回顶楼 | |
发表时间:2011-01-30
关于DCL这里有很详细的介绍和解释,wish to help。http://www.iteye.com/topic/875420
|
|
返回顶楼 | |