JAVA模拟多线程

来源:互联网 发布:查询域名ip 编辑:程序博客网 时间:2024/05/02 02:44

代码为从别的帖子COPY而来。http://blog.csdn.net/olojiang/archive/2007/04/05/1552505.aspx

 如有造成不良影响,我立刻删除。并致以最深刻的道歉!

package practice;

public class BankAccount {
    int balance = 200;
    public int getBalance(){
        return balance;
    }
    public void withdraw(int amount){
        balance = balance - amount;
    }
}

 

-------------------------------------------------------

package practice;

public class RyanAndMonicaJob implements Runnable{
 
    private BankAccount account = new BankAccount();
 
   
    public static void main(String[] args){
        RyanAndMonicaJob runner = new RyanAndMonicaJob();
        Thread one = new Thread(runner);
        Thread two = new Thread(runner);
        one.setName("A");
       
        try {
   one.sleep(500);
  } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
        two.setName("B");
        one.start();
        two.start();
    }
   
    public  void run(){
        for(int i=0; i< 10; i++){
            withdraw(30);
        }
        if(account.getBalance()<0){
            System.out.println("帐户余额不足!");
        }
    }
    private  void withdraw(int amount){
        if(account.getBalance()>amount){
            try{
                System.out.println("线程"+Thread.currentThread().getName() +"(正在从 USER——001帐户 执行取30快钱操作.....!)  ");
                Thread.sleep(8000);
            }catch(Exception e){
                e.printStackTrace();
            }
          
            account.withdraw(amount);
            System.out.println("线程 " + Thread.currentThread().getName() + " 取30后, 帐户余额是: " + account.getBalance());
        }else{
            System.out.println("sorry " + Thread.currentThread().getName() + " 钱不够取!!!帐户余额是: " + account.getBalance());
        }
    }
}

原创粉丝点击