第四周作业-多线程编程

来源:互联网 发布:js断点调试debug 编辑:程序博客网 时间:2024/06/05 06:39
class BankAccount   //定义银行账号类BankAccount{private static int amount = 2000;  //账户余额最初为2000public 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()       //定义run方法{cus(name,bs);}}public class AccountTest1{public static void main(String arg[])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);}}

0 0
原创粉丝点击