使用同步机制实现单例模式的懒汉式

class Bank{

    private Bank(){}

    private static Bank instance = null;

    public static Bank getInstance(){
        //方式一:效率稍差。因为每个取单例对象都是同步,相当于只能单线程取,所以效率低。
//        synchronized (Bank.class) {
//            if(instance == null){
//
//                instance = new Bank();
//            }
//            return instance;
//        }
        //方式二:效率更高。因为只有在创建单例的时候才进行同步,其余时刻不同步,可以多线程同时取单例对象,所以效率高。
        if(instance == null){

            synchronized (Bank.class) {
                if(instance == null){

                    instance = new Bank();
                }

            }
        }
        return instance;
    }
发布了63 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/sinat_30955745/article/details/105496545
今日推荐