1. 程式人生 > >模擬銀行取錢 (多執行緒操作的好處)

模擬銀行取錢 (多執行緒操作的好處)

(1)銀行類

package test4;
/**
 * 銀行賬戶
 * @author user
 *
 */
public class Bank {

private static double balance;//類的變數,資料共享

public Bank(){

}
public Bank(double money){
balance = money;
}

//取款操作
public synchronized void getMoney(double money){
System.out.println(Thread.currentThread().getName()+"查詢當前餘額為"+balance+"元");
if(balance >= money){
balance -= money;
System.out.println(Thread.currentThread().getName()+"取款"+money+"元,當前餘額為"+balance+"元");
}
}



}

(2)測試類

package test4;


public class Test {


public static void main(String[] args) {

//只有一個銀行賬戶
Bank bank = new Bank(1000);

//模擬使用不同的APP同時操作銀行賬戶
Qu wx = new Qu(bank,100);
Qu zfb = new Qu(bank,100);
Qu wy = new Qu(bank,100);

wx.setName("微信");
zfb.setName("支付寶");
wy.setName("網銀");

wx.start();
zfb.start();
wy.start();



}


}

(3)取繼承thread方法

package test4;


public class Qu extends Thread{

private Bank bank;
private double money;

public Qu(Bank b,double money){
this.bank = b;
this.money = money;
}

@Override
public void run() {
bank.getMoney(money);
}


}

小結:在執行多工以及下載多檔案時,可以通過多執行緒的併發操作機制達到目的。