/*
* 使用同步机制将单例模式中的懒汉式改写为线程安全的
* */
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;
}
}