模拟银行取钱 (多线程操作的好处)

(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);
}


}

小结:在执行多任务以及下载多文件时,可以通过多线程的并发操作机制达到目的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值