package com.lan.test;
 
/**
 * User: Json
 * Date: 2021/8/17
 * 使用同步机制将单例模式中的懒汉式改成为线程安全
 **/
public class BankTest {
    public static void main(String[] args) {
        Bank bank=Bank.getback_2();
        bank.getBack();
 
    }
}
 
//懒汉式
class Bank{
    //1.必须有构造器
    private Bank(){
        System.out.println("私有构造器23");
    }
    // 2. 声明当前类对象 没有初始化
    private  static Bank bank=null;
 
    //提供公共的方法 返回对象
    //synchronized  不使用的话 会存在 安全问题
    // 如果有很多地方在同时调用的这个类的时候
    // 同时操作时 这个判断 bank == null 有可能 会声明多个 bank对象
    // 所以要使用 synchronized 把这个方法锁起来
    // 只能声明一个对象 下面再来的人 就不会重复造这个对象了
    public synchronized static Bank getback_2() {
        if(bank == null) {
            bank=new Bank();
        }
        return bank;
    }
 
    public  void  getBack(){
        System.out.println("111111111111");
    }
 
 
}