class BankAccount { //定义银行账户类BankAccount
private static int amount=2000; //账户余额最初为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 static void cus(String name,BankAccount bs){ //具体的账户操作方法
if(name.equals("小明")){ //判断用户是不是小明
try{
for(int i=0;i<6;i++){ //用户小明则向银行存款6次,每次1000元
Thread.currentThread().sleep((int)(Math.random()*300));
bs.despoit(1000);
}
}
catch(InterruptedException e){}
}
else{
try{
for(int i=0;i<6;i++) { //用户不是小明从银行取款6次,每次1000元
Thread.currentThread().sleep((int)(Math.random()*300));
bs.withdraw(1000);
}
}
catch(InterruptedException e){}
}
}
public void run(){
cus(name,bs);
}
}
public class AccountText{
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);
}
}
第四周作业-多线程编程
最新推荐文章于 2023-06-07 10:15:34 发布