package Project4;
class test implements Runnable{
public void run(){
Bank.getBank();
}
}
//class Bank{
// public static Bank bank=null;
// //public static Bank getBank(){
//
// /*效率稍微差,因为当第一个bank进来时候,后面的进来已经没有什么意义了*/
// public static synchronized Bank getBank(){
// if(bank==null){
// bank=new Bank();
// System.out.println("1");
// }
//
// return bank;
// }
//}
class Bank {
public static Bank bank = null;
//public static Bank getBank(){
/*两个if是对上面的改进*/
public static Bank getBank() {
if (bank == null)
synchronized (Bank.class) {
if (bank == null) {
bank = new Bank();
System.out.println("1");
}
}
return bank;
}
}
public class TestBank {
public static void main(String[] args){
test r=new test();
Thread a1=new Thread(r);
Thread a2=new Thread(r);
Thread a3=new Thread(r);
a1.start();
a2.start();
a3.start();
}
}