利用多线程怎么编写存款与取款的问题?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主截止到2008-06-21 10:18:17的汇总数据:
    注册日期:2008-5-12
    上次登录:2008-6-21
    发帖数:1                  发帖分:20                 
    结贴数:0                  结贴分:0                  
    结贴率:0.00 %        结分率:0.00 %        
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    一段模拟出纳的操作,你自己参考吧
    http://www.java2000.net/viewthread.jsp?tid=5382
      

  3.   

    归根结底,就是生产者消费者模型的应用.
      嘿嘿,这种问题已经回答很多遍了,GOOGLE一下,楼主可以自行选择,自行解决问题............
      

  4.   

    class Account1{               //账户缓冲区
    private String name;
    private int value;
    void put(int i){         
    value=value+i;
    }
    int get(int i){
    if(value>i){
    value=value-i;
    }
    else{
    i=value;
    value=0;
    }
    return i;
    }
    int howmatch(){
    return value;
    }}
    class Save2 extends Thread{            //存款
    private Account1 a1;
    private int amount;
    public Save2(Account1 a1,int amount){
    this.a1=a1;
    this.amount=amount;
    }
    public void run(){
    synchronized(a1){
    int k=a1.howmatch();
    try{
    sleep(1);
    }
    catch(InterruptedException e){
    System.out.println(e);
    }
    a1.put(amount);
    System.out.println("现有"+k+",存入"+amount+",余额"+a1.howmatch());
    }
    }
    public static void main(String args[]){
    Account1 a1=new Account1();
    (new Save2(a1,100)).start();
    (new Save2(a1,200)).start();
    (new Save2(a1,500)).start();
    }
    }
    class Fetch2 extends Thread{                //取款
    private Account1 a1;
    private int amount;
    public Fetch2(Account1 a1,int amount){
    this.a1=a1;
    this.amount=amount;
    }
    public void  run(){
    synchronized(a1){
    int k=a1.howmatch();
    try{
    sleep(1);
    }
    catch(InterruptedException e){
    System.out.println(e);
    }
    System.out.println("现有"+k+",取走"+a1.get(amount)+"余额"+a1.howmatch());
    }
    }
    }
    //这是书上关于存取款的例子