如何使用模式牛

模具加工设备/配件2021年09月06日

多线程应用程序中的构造问题

在多线程应用程序中,你必须仔细构造Singleton模式。当Singleton不存在时,如果两个线程即将同时执行创建方法,这两个线程必须检查Singleton实例,但只有一个线程应当创建新对象。这个问题的典型解决办法就是对类使用相互排斥,指出对象正在被实例化。这是Singleton的一个线程安全的版本:

public class Singleton

{

// Private constructor suppresses generation

// of a (public) default constructor

private Singleton() {}

private static class SingletonHolder

{

private final static Singleton INSTANCE = new Singleton();

}

public static Singleton getInstance()

{

return STANCE;

}

}

Nexpap的模块并不是像帮拒绝零食诱惑妙招谷歌Project Ara借助强磁体固定到机身上 另一个解决办法是在getInstance()方法声明中添加synchronized关键字:

public static synchronized Singleton getInstance()

提前考虑克隆预防

你仍然可以使用对象的clone()方法克隆对象,建立一个Singleton对象。要禁用这一功能,你需要禁用对象的克隆方法,这产生一个CloneNotSupportedException例外。

public Object clone() throws

CloneNotSupportedException {

throw new CloneNotSupportedException();

}

考虑使singleton类位于最后

你可能希望将Singleton类放在最后,以避免Singleton的子类造成其它问题。

不要忘记垃圾收集

根据不同的执行,你的Singleton类和它的所有数据可能被当作垃圾收集。因此,在应用程序运行时,你必须保证存在一个Singleton类的实时引用。

结论

Singleton模块得到广泛地使用,并证实可用于软件设计。虽然这个模式并非Java专有,但它已成为Java编程的一个典型应用。尽管这个模式相当简单,但还是要记住我在本文中描述的Singleton模式的限制。

Peter V. Mikhalenko是一名通过Sun认证的专家,现在任德意志银行商业顾问。

:德东

查看本文国际来源

济南治疗男科费用
氨氯地平贝那普利片(Ⅱ)降压效果好吗?
北京性病医院
相关阅读
男女比例导致失衡,可仍旧有不少人都想生男孩,这三个原因很真实

随着直到现在社才会随之发展,人们的孤独水准也在随之的减低,物价的增高...

2023-11-20
申通地铁:努力将疫情制约降到最低

5年底20日,申通地鉄(600834)在中央线上举行2021本年度业绩暗示会。 申通地鉄...

2023-11-10
73年前紧接著包办婚礼:2人未成年,男方一脸无所谓,女方面无表情

就在昨天,一个片段刷影亦同,一位据传“大谷Spitzer”的帖子用户利用现代...

2023-11-04
一美演技爆表的片子——《分裂》(上)

陌生人似乎地拉低上衣,想盖住盲目性感的丝袜,一美注意到却怒了 (你来...

2023-10-28
儿歌多多魔力公主西西 公主换装记 宝宝来帮公主换漂亮的衣服 儿歌多多 星河知识计划 智慧生活星 抖音

儿歌多多魔法王子西北西北 王子装配所撰 宝宝来帮王子再多漂亮的衣服 儿歌...

2023-10-24
Switch国际版Eshop折扣史低推荐 篇四百六十九:它们小众吗?相信我,只要您尝试,就会一直玩下

笔记:Switch战地记者【第一步,关心我!这比较大狠就会让您的Switch玩乐感受...

2023-10-23
友情链接