解决懒汉式线程安全问题

					解决懒汉式线程安全问题

/**

  • 懒汉式单例模式:

  • 1.只能创建一个对象,所以构造器必须是私有化的,只能在内部去创建一个对象

  • 2.私有静态属性保存实例化对象,保证内存中只有这一个实例化对象

  • 3.判断实例化对象是否为空,如果为空则利用私有化构造器创建一个对象

  • 4.同步代码块和同步方法的方式都可以解决当前的线程安全问题
    */
    class Bank
    {
    //私有的静态的属性保存Bank类对象
    private static Bank bank = null;

    //私有的构造器,防止Bank在类外面创建对象
    private Bank(){};

    //公共的静态的方法得到Bank类的唯一对象
    public static /synchronized/ Bank getInstance()
    {
    if(bank == null)
    {
    synchronized (Bank.class)
    {
    if(bank == null)
    {
    /此处如果使用synchronized其他线程可能就会在此处等待,一旦上一个线程释放锁,其他线程还是会执行下一行代码,仍然还是会出现线程安全问题/
    /此处可能回出现线程安全问题
    *****/
    bank = new Bank();
    }
    }
    }
    return bank;
    }
    }

猜你喜欢

转载自blog.csdn.net/AML1314520/article/details/109401369