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;
}
}