首页 > 其他 > 详细

单例与多例

时间:2014-04-28 22:02:34      阅读:648      评论:0      收藏:0      [点我收藏+]

1.单例设计模式

1.1不考虑多线程

bubuko.com,布布扣
public class Singleton {
    private static Singleton instance;
    private Singleton (){}
    public static Singleton getInstance() {
        if (instance == null)
            instance = new Singleton();
        return instance;
    }
}
bubuko.com,布布扣

1.2线程安全

采用双重校验锁。

把singleton变量声明为volatile,指示JVM,这个变量是不稳定的,每次使用它都到主存中进行读取(否则可能一个线程读取的是主存中的,一个线程读取的寄存器中的)。一般说来,多任务环境下各任务间共享的标志都应该加volatile修饰。

bubuko.com,布布扣
public class Singleton {
    private volatile static Singleton singleton; 
    private Singleton (){}
    public static Singleton getSingleton() {
        if (singleton == null) {
            synchronized (Singleton.class) {
                if (singleton == null)
                    singleton = new Singleton();
            }
        }
        return singleton;
    }  
}
bubuko.com,布布扣

2.多例模式

多例模式(Multiton Pattern)是单例模式的自然推广。作为对象的创建模式,多例模式或多例类有以下的特点:
1、多例类可以有多个实例
2、多例类必须能够自我创建并管理自己的实例,并向外界提供自己的实例。
多例模式的典型例子就是数据库线程池。

单例与多例,布布扣,bubuko.com

单例与多例

原文:http://www.cnblogs.com/redhead/p/3693076.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!