用java编程,要求用多线程实现父母挣钱和孩子花钱的过程.要用到线程同步,最后用Runnable接口

 我来答
tourkpu
2016-07-21 · TA获得超过743个赞
知道小有建树答主
回答量:322
采纳率:0%
帮助的人:226万
展开全部
public class TestBank{
public static void main(String[] args){
String s1="saveBankMoney";
String s2="getBankMoney";

Bank bank=new Bank(s1,s2);
Thread save_Money;
Thread get_Money;
save_Money=new Thread(bank);
get_Money=new Thread(bank);
save_Money.setName(s1);
get_Money.setName(s2);
save_Money.start();

get_Money.start();//启动线程
}
}

class Bank implements Runnable{

public Bank(String s1,String s2){
this.s1=s1;
this.s2=s2;
}

public void run(){
saveBankMoney(11000);//存款额规定为11000
getBankMoney(5000);//取款5000

}
//同步方法,实现存款
public synchronized void saveBankMoney(double save_money){
if(Thread.currentThread().getName().equals(s1)){
for(int i=1;i<3;i++){
if (save_money==11000){
this.money+=save_money;
try{
Thread.sleep(2000);//休眠
}
catch(InterruptedException ex ){
ex.printStackTrace();
}
System.out.println("我要存款:"+save_money);
System.out.println("存款成功!帐号目前余额为:"+this.money);
}
}
}
}
//同步方法,实现取款
public synchronized void getBankMoney(double get_money){
if(Thread.currentThread().getName().equals(s2)){
for(int i=1;i<3;i++){
if(money>=get_money){
this.money=this.money-get_money;
try{
Thread.sleep(2000);//休眠
}
catch(InterruptedException ex){
ex.printStackTrace();
}
System.out.println("我要取款:"+get_money);
System.out.println("取款成功!帐号目前余额为:"+this.money);
}
else{
System.out.println("帐号余额不足!");
}
}
}
}

private double money=10000.0;//帐号初始额为10000
private String s1;
private String s2;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式