第四周作业:多线程
2014-03-25 09:48
162 查看
class BankAccount{ private static int amount=2000; public void despoit(int m){ amount=amount+m; System.out.println("小明存入["+m+"元]"); } public void withdraw(int m){ amount=amount-m; System.out.println("张新取走["+m+"元]"); if(amount<0) System.out.println("***余额不足!***"); } public int balance(){ return amount; } } class Customer extends Thread{ String name; BankAccount bs; public Customer(BankAccount b,String s){ name=s; bs=b; } public synchronized static void cus(String name,BankAccount bs){ if(name.equals("小明")){ try{ for(int i=0;i<6;i++){ Thread.currentThread().sleep((int) (Math.random()*300)); bs.despoit(1000); } } catch(InterruptedException e){} } else{ try{ for(int i=0;i<6;i++){ Thread.currentThread().sleep((int)(Math.random()*300)); bs.withdraw(1000); } } catch(InterruptedException e){} } } public void run(){ cus(name,bs); } } public class AccountTest1{ public static void main(String args[])throws InterruptedException{ BankAccount bs=new BankAccount(); Customer customer1= new Customer(bs,"小明"); Customer customer2= new Customer(bs,"张新"); Thread t1= new Thread(customer1); Thread t2= new Thread(customer2); t1.start(); t2.start(); Thread.currentThread().sleep(500); } }