当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

单例模式

发表于: 2015-04-19   作者:dsxwjhf   来源:转载   浏览次数:
摘要: package com.wjxie.designpattern; /** * * 单例模式。 * * volatile 作用: * 1. 其它线程立即可见; * 2. 禁止指令重排序。 * */ public class Singleton {     private static volatile Singleton i
package com.wjxie.designpattern;

/**
*
* 单例模式。
*
* volatile 作用:
* 1. 其它线程立即可见;
* 2. 禁止指令重排序。
*
*/
public class Singleton {

    private static volatile Singleton instance = null;

    private Singleton() {

    }

    public static Singleton getInstance() {
        if (instance == null) {
            // 下面这句可能需要等待其它线程释放 Singleton.class 的对象锁,本线程被阻塞。如果是这样,那意味着:
            // 本线程执行上面 instance == null 判断的时候,已经有别的线程开始构造 instance 实例了,但还没有构造完毕。因此 if 条件成立,程序走到了这里。
            // OK ,我们等了5秒钟。这时候其它线程对 instance 的初始化过程执行完毕了,它释放了 Singleton.class 的对象锁,被本线程得到,继续执行同步块内的代码。
            // 这就是我们为什么需要再次判断 instance == null 的原因,如果不做判断有可能会再创建一个对象。
            synchronized (Singleton.class) {
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }

}

单例模式

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
保证一个类只有一个实例,并提供一个访问它的全局访问点。 类图: 代码: template<typename T&g
java设计模式中有一个模式叫单例模式,单例的意思就是该类只能产生一个实例,平时我们定义类可以随
原文地址:http://www.cnblogs.com/Ray-xujianguo/p/3396884.html 在讲单例模式之前,我想先试讲一
在讲单例模式之前,我想先试讲一个例子,在什么程序中,我们都需要读取property配置文件,通过Java
单例模式 Singletonn Pattern Ensure a class has only one instance, and provide a global point
一. 单例模式 整理自 《java与模式》阎宏编著 1.意图: 确保某个类只有一个实例,并且为该类提供一
单例模式确保一个类只有一个实例,自行提供这个实例并向整个系统提供这个实例。 特点: 1,一个类只
首先来明确一个问题,那就是在某些情况下,有些对象,我们只需要一个就可以了, 比如,一台计算机上
一. 单例模式 整理自 《java与模式》阎宏编著 1.意图: 确保某个类只有一个实例,并且为该类提供一
一、 单例(Singleton)模式 单例模式的特点: • 单例类只能有一个实例。 • 单例类必须自己创建自
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号