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()*3000));
bs.despoit(1000);
}
}
catch(InterruptedException e){
}
}
else{
try{
for(int i =0;i<6;i++){
Thread.currentThread();
Thread.sleep((int)(Math.random()*3000));
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().sleep(500);
}
}
第四周作业-多线程编程
最新推荐文章于 2025-05-03 17:54:36 发布