第四周作业-多线程编程

来源:互联网 发布:mac pro 强制关闭程序 编辑:程序博客网 时间:2024/05/21 17:55
class BankAccount //定义银行账户类BankAccount{private static  int amount = 2000;//账户的余额最初为2000public void depoit (int m)//定义存款的方法{amount=amount+m;System.out.println("小明存入了"+m+"元");}    public void withdraw(int m)//定义取款方法    {        amount=amount-m;    System.out.println("张新取走"+m+"元");    if(amount<m)    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.depoit(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()//定义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);}}

0 0
原创粉丝点击