Head First设计模式笔记(6)---单件模式

 

Head First设计模式笔记(6)---单件模式

单件模式:单件模式确保一个类只有一个实例,并提供一个全局访问点

 

单件模式只涉及一个类,因此非常简单,需要注意的2点是:(1)构造函数为私有成员;(2)有一个静态函数负责实例化。

 

 

问题1:单件模式在多线程下的困境

回答1:处理在多线程下的单件模式有3种方法:

1)同步机制:

 

同步方法既简单又有效,然而会产生效率低下的问题,同步一个方法可能造成程序执行效率下降100倍,因此不适宜用在频繁运行的地方。

 

2)使用“急切”创建实例,不延迟实例化,见下图:

 

(3)“双重检查加锁”,在getInstance()种减少使用同步,见下图:

 

 

 

注:volatile关键字参考如下:http://aleung.blogbus.com/logs/32090434.html

 

 

你可能感兴趣的:(设计模式,多线程)