- 单例模式只允许创建一个对象,因此节省内存,加快对象访问速度,因此对象需要被公用的场合适合使用,如多个模块使用同一个数据源连接对象等等
- 网站的计数器,一般也是采用单例模式实现,否则难以同步
- 单例模式要素:
a.私有构造方法
b.私有静态引用指向自己实例
c.以自己实例为返回值的公有静态方法
- 单例模式在多线程的 应用场合下必须小心使用
- 多线程可能调用同一个方法,可能没有创建实例导致多个实例被构造,违反单例模式原则
- public class MySingleton {
- volatile private static MySingleton instance = null;
-
- private MySingleton(){}
-
- public static MySingleton getInstance() {
- try {
- if(instance != null){
-
- }else{
-
- Thread.sleep(300);
- synchronized (MySingleton.class) {
- if(instance == null){
- instance = new MySingleton();
- }
- }
- }
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- return instance;
- }
- }
posted @
2017-10-12 15:05
cnblogs/yinbin
阅读(
319)
评论()
编辑
收藏
举报