懒汉式(线程安全版)

114 阅读1分钟
/*
 * 使用同步机制将单例模式中的懒汉式改写为线程安全的
 * */
public class BankTest {
}

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() {
         synchronized (Bank.class) {
             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;
    }

}