class Bank{
private Bank(){}
private static Bank b=null;
//方式一:1
// public static synchronized Bank getInstance(){//加上synchronized,直接把此方法设置成同步方法,锁是Bank.class
// if(b==null){
// b=new Bank();
// }
// return b;
// }
//方式一:2
// public static Bank getInstance(){
// synchronized (Bank.class) {
// if(b==null){
// b=new Bank();
// }
// return b;
// }
// }
//以上是方式一:效率较差
//以下是方式二:效率较高,以后写懒汉式的单例模式直接写这个
public static Bank getInstance(){
if(b==null){//因为如果线程1已经new一个对象了,那之后的线程就不用在等这个锁了,直接执行return语句
synchronized (Bank.class) {
if(b==null){
b=new Bank();
}
}
}
return b;
}
}
09-16
2244
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)