第四周作业-多线程编程
2014-03-25 09:43
120 查看
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(); Thread.sleep((int)(Math.random()*300)); bs.despoit(1000); } } catch(InterruptedException e) {} } else { try { for(int i=0;i<6;i++) { Thread.currentThread(); Thread.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(); Thread.sleep(500); } }