(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);
}
}
小结:在执行多任务以及下载多文件时,可以通过多线程的并发操作机制达到目的。