A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 感觉很cooooool 中级黑马   /  2015-12-27 11:27  /  2759 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

6黑马币
用多线程模拟向银行存钱的过程,两个人,每次存500元,存三次。


最佳答案

查看完整内容

//账户类 public class Acount { private int money; public Acount(int money){ this.money=money; } public synchronized void getMoney(int money){ while(this.money10000){ try{ System.out.println("余额:"+this.money+"存款:"+money+" 该帐户最多存款10000 等待取款...");wait();}catch(Exception e){} }*/ try{ Thread.sleep(10);}catch(Exception e){} this.money=this.money+money; System.out.pri ...

1 个回复

倒序浏览
//账户类 public class Acount {  private int money;  public Acount(int money){   this.money=money;  }  public synchronized void getMoney(int money){   while(this.money<money){//注意这个地方必须用while循环,因为即便再存入钱也有可能比取的要少    System.out.println("取款:"+money+" 余额:"+this.money+" 余额不足,正在等待存款......");    try{ wait();} catch(Exception e){}   }   this.money=this.money-money;   System.out.println("取出:"+money+" 还剩余:"+this.money);   //notify();  }  public synchronized void setMoney(int money){   /*while(this.money+money>10000){    try{ System.out.println("余额:"+this.money+"存款:"+money+" 该帐户最多存款10000 等待取款...");wait();}catch(Exception e){}   }*/   try{ Thread.sleep(10);}catch(Exception e){}   this.money=this.money+money;   System.out.println("新存入:"+money+" 共计:"+this.money);   notify();  }  public static void main(String args[]){   Acount Acount=new Acount(0);   Bank b=new Bank(Acount);   Consumer c=new Consumer(Acount);   new Thread(b).start();   new Thread(c).start();  } } //存款类 class Bank implements Runnable {  Acount Acount;  public Bank(Acount Acount){   this.Acount=Acount;  }  public void run(){   while(true){    int temp=(int)(Math.random()*1000);    Acount.setMoney(temp);       }  }   } //取款类 class Consumer implements Runnable {  Acount Acount;  public Consumer(Acount Acount){   this.Acount=Acount;  }  public void run(){   while(true){        int temp=(int)(Math.random()*1000);    Acount.getMoney(temp);   }  } }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马