java基础——线程安全的单例模式懒汉式

Posted zsbenn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java基础——线程安全的单例模式懒汉式相关的知识,希望对你有一定的参考价值。

package savesingleton;
/*
使用同步将单例模式中的懒汉式改写成线程安全的

@author zsben
@create 2020-01-03 22:22
*/

class Bank{

    private  Bank(){}

    private  static Bank instance = null;

    /*public static synchronized Bank getInstance(){
        if(instance == null){
            instance = new Bank();
        }
        return instance;
    }较为低效
    */

    //高效办法:内外各判一次
    public static Bank getInstance(){
        if(instance == null){
            //里面一定要再判一次:想想为什么,再加一层是为了防止有多个线程同时进入,所以内层再加一层
            synchronized (Bank.class) {
                if(instance == null) {
                    instance = new Bank();
                }
            }
        }
        return instance;
    }

}

以上是关于java基础——线程安全的单例模式懒汉式的主要内容,如果未能解决你的问题,请参考以下文章

单例模式

设计模式——单例模式

菜鸟成长日记:Java基础篇3 --- 单例模式

单例模式的线程安全性

创建型模式之单例模式

单例模式的八种实现