package com; /** * @author 冀帅 * @date 2020/8/3-10:32 * 使用同步机制将单例模式的懒汉式改写为线程安全的 */ public class BankTest { } //懒汉式 class Bank{ private Bank(){} private static Bank instance = null; public static Bank getInstance(){ //方式一:效率低 // synchronized (Bank.class) { // if (instance == null){ // instance = new Bank();//后来的线程进来判断为fales,直接return。不会创建新的instance // // } // return instance; // } //方式二: if (instance == null){//互相抢锁,没抢到的判断 instance不为null ,就不会进入同步代码块,会直接拿到instance,效率更高 synchronized (Bank.class) { if (instance == null){ instance = new Bank();//后来的线程进来判断为fales,直接return。不会创建新的instance } } } return instance; } }