美文网首页
单实例模式(线程安全Java)

单实例模式(线程安全Java)

作者: 大明白 | 来源:发表于2017-03-03 10:18 被阅读44次

多线程安全单例模式实例一(不使用同步锁)

代码中的一个缺点是该类加载的时候就会直接new 一个静态对象出来,当系统中这样的类较多时,会使得启动速度变慢 。现在流行的设计都是讲“延迟加载”,我们可以在第一次使用的时候才初始化第一个该类对象。所以这种适合在小系统。

public class Singleton {
    private static Singleton sin=new Singleton();    ///直接初始化一个实例对象
    private Singleton(){    ///private类型的构造函数,保证其他类对象不能直接new一个该对象的实例
    }
    public static Singleton getSin(){    ///该类唯一的一个public方法    
        return sin;
    }
}

多线程安全单例模式实例二(使用同步方法)

代码中的一次锁住了一个方法, 这个粒度有点大 ,改进就是只锁住其中的new语句就OK。就是所谓的“双重锁”机制。

public class Singleton {  
     private static Singleton instance;  
     private Singleton (){
         
     }   
     public static synchronized Singleton getInstance(){    //对获取实例的方法进行同步
       if (instance == null)     
         instance = new Singleton(); 
       return instance;
     }
 }

多线程安全单例模式实例三(使用双重同步锁)

public class Singleton {  
     private static Singleton instance;  
     private Singleton (){
     }   
     public static Singleton getInstance(){    //对获取实例的方法进行同步
       if (instance == null){
           synchronized(Singleton.class){
               if (instance == null)
                   instance = new Singleton(); 
           }
       }
       return instance;
     }
 }

相关文章

  • 单例模式汇总

    Java单例模式 java单例模式是为了让全局只实例化一个对象,常用的方式包括懒汉模式、饿汉模式,考虑到线程安全,...

  • 单实例模式(线程安全Java)

    多线程安全单例模式实例一(不使用同步锁) 代码中的一个缺点是该类加载的时候就会直接new 一个静态对象出来,当系统...

  • 深入理解 Java 内存模型

    一、概述 在之前 单例模式的Java实现与思考 一文里讲到,为了使用 DCL 实现线程安全的单例模式,需要对实例变...

  • 面试复习-设计模式

    一、单例模式 确保一个类只有一个实例,并提供一个全局访问点。 线程不安全的单例模式 懒汉式 线程安全的单例模式: ...

  • Java 单例模式

    概述 Java中单例模式是一种常见的设计模式,单例模式总共有7种写法。 懒汉,线程不安全 懒汉,线程安全 饿汉 饿...

  • 单例模式

    Golang 单例模式的几种形式 1.非线程安全,虽然说是单例模式,但是如果实例正在创建中,此时多个线程同时访问,...

  • 单例模式的几种写法

    单例模式要点 私有的构造方法 指向实例的私有静态引用 获取实例对象的公有静态方法 饿汉模式(非线程安全) 懒汉模式...

  • 设计模式-单例模式(二)

    单例模式,目标就是在JVM内创建线程安全的单个实例.用途很多,比如加载资源配置文件.在Java中实现单例的方法有很...

  • Java Singleton 单例模式

    单例模式 属于创建型模式 自行完成实例化,私有化构造函数 单例模式的目标 实例唯一性 线程安全性 任何情况都需要确...

  • 最常用的设计模式----单实例模式(C++ 实现)

    单实例模式,本人认为最简单的设计模式之一,当然说的简单是针对一般情况,是不考虑线程安全等一系列其他问题。单实例模式...

网友评论

      本文标题:单实例模式(线程安全Java)

      本文链接:https://www.haomeiwen.com/subject/uxulgttx.html