`
zhishan332
  • 浏览: 14248 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

双重枷锁机制

 
阅读更多
所谓双重检查加锁机制,指的是:并不是每次进入getInstance方法都需要同步,而是先不同步,进入方法过后,先检查实例是否存在,如果不存在才进入下面的同步块,这是第一重检查。进入同步块过后,再次检查实例是否存在,如果不存在,就在同步的情况下创建一个实例,这是第二重检查。这样一来,就只需要同步一次了,从而减少了多次在同步情况下进行判断所浪费的时间。

双重检查加锁机制的实现会使用一个关键字volatile,它的意思是:被volatile修饰的变量的值,将不会被本地线程缓存,所有对该变量的读写都是直接操作共享内存,从而确保多个线程能正确的处理该变量。

看看代码可能会更加清楚些。示例代码如下:


public class SingletonDemo {
    private SingletonDemo() {
    }

    private volatile static SingletonDemo singleton = null;

    public static SingletonDemo getInstance() {
        if (singleton == null) {
            synchronized (SingletonDemo.class) {
                if (singleton == null) {
                    singleton = new SingletonDemo();
                }
            }
        }
        return singleton;
    }
}

这种实现方式可以实现既线程安全地创建实例,而又不会对性能造成太大的影响。它只是在第一次创建实例的时候同步,以后就不需要同步了,从而加快了运行速度。
分享到:
评论

相关推荐

    CAD文件枷锁与去除枷锁工具.zip

    CAD文件枷锁与去除枷锁工具.zip cad文件加密,去除与安上枷锁工具。

    注册表枷锁

    注册表枷锁

    7z文件枷锁器dll

    7z文件枷锁器dll 适合7z文件枷锁器dll 7z文件枷锁器dll

    一个功能强大的VB文件夹枷锁,锁定功能。

    这种“文件夹枷锁”功能是信息安全的重要组成部分,特别是在个人电脑和企业环境中。 【描述】:这个VB文件夹枷锁应用设计的核心目标是提供简单易用的安全措施,以加密和隐藏选定的文件夹。它通过设置密码来限制对...

    创新思维需要破除的枷锁.pptx

    然而,许多创新思维的阻碍源于我们自身的思维定式,这些定式就像枷锁一样限制了我们的想象力和创新能力。思维定式是由我们的文化传统、个人经历以及知识积累形成的,它们在帮助我们处理日常问题时起到积极的作用,但...

    短信枷锁,防止不想别人看到的信息被发现

    很不错的,信息枷锁器,建议大家用用,保护你的隐私,呵呵,看看,赶快下载吧

    Android 应用签名的枷锁与革新

    Android 应用签名的枷锁与革新 概要 • Android 应⽤用签名简介 •签名对 Android ⽣生态的意义 •应⽤用签名的局限和⽣生态乱象 •既有解决⽅方案 • OASP: 救赎与⾰革新

    初中语文文摘人生人生的枷锁

    《初中语文文摘》中的这篇文章以“人生的人生的枷锁”为题,旨在探讨人们在生活中的情感依赖与自我成长的主题。在这个过程中,我们常常不自觉地给自己套上无形的枷锁,这些枷锁可能是对某个人、某种习惯或者某种环境...

    初中语文文摘人生抛开纸枷锁

    【标题】"初中语文文摘人生抛开纸枷锁"主要探讨的是个人在生活中面临的各种社会期望和束缚,以及如何寻求自由和自我实现的过程。【描述】中提到的"纸枷锁"指的是那些看似重要但实际上可以轻易挣脱的束缚,比如传统...

    黄金级枷锁

    黄金级枷锁

    oppo枷锁工具包

    OPPO枷锁工具包是一款专为OPPO手机用户设计的软件工具,主要用于解除OPPO手机的官方锁定状态,以便进行更自由的系统定制和优化。这个工具包包含了OPPO官方提供的解锁工具,允许用户解锁Bootloader,从而可以安装第三...

    苹果ios枷锁工具.rar

    苹果ios枷锁工具

    《Android 应用签名的枷锁与革新》PDF

    《Android 应用签名的枷锁与革新》这本书深入探讨了Android应用签名的重要性和相关机制,它是Android开发者理解和优化应用程序发布流程的关键。Android应用签名是确保应用安全、完整性和可更新性的基石,同时也是...

    android也架构之单例模式

    首先我们来看下单例模式的定义: ...在其他的一些项目中还使用了双重检测枷锁机制。 现在我们来看下代码,我会提供代码下载供大家参考。 文章详情:http://blog.csdn.net/michael_yy/article/details/7883621

    初中语文文摘励志打破心灵的枷锁

    【标题】:“初中语文文摘励志打破心灵的枷锁”所蕴含的人生智慧 【描述】:这段文字通过几个富有哲理的故事,传达了一个深刻的主题——打破心灵的枷锁,释放内心的自我,找到生活的美好和坚韧的力量。这不仅适用于...

    创新思维需要破除的枷锁.ppt

    创新思维是推动社会发展和个人进步的重要动力,然而,我们的思考方式往往会受到各种枷锁的限制,这些枷锁主要包括思维定势、从众型思维和权威型思维。这些枷锁阻碍了我们对新想法的探索和接纳,限制了创新能力的发挥...

Global site tag (gtag.js) - Google Analytics