第四周作业-多线程编程

来源:互联网 发布:php study linux 编辑:程序博客网 时间:2024/06/04 18:57
class BankAccount {/** * @param args */private static int amount = 2000;      //账户余额最初为2000public void despoit(int m)             //定义存款的方法{amount = amount + m;System.out.println("小明存入[" + m +"元");}public void withdraw(int m)                //定义取款的方法{if(amount <= 0){System.out.println("***余额不足!***");return;}amount = amount - m;System.out.println("张新取走[" + m + "元]");}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()                    //定义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
原创粉丝点击