- 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);
- }
- }