public class Test7 {
public static void main(String []args){
//Bank bank=new Bank();
//bank.setMoney(200);
//Thread accountant=new Thread(bank);
//Thread cashier=new Thread(bank);
//accountant.setName("会计");
//cashier.setName("出纳");
//accountant.start();
//cashier.start();
Bank bank=new Bank();
bank.setMoney(200);
Thread accountant;
Thread cashier;
accountant=new Thread(bank);
cashier=new Thread(bank);
accountant.setName("会计");
cashier.setName("出纳");
cashier.start();
accountant.start();
}
}
public class Bank implements Runnable {
int money;
public void setMoney(int n){
money=n;
}
public void run(){
if(Thread.currentThread().getName().equals("会计"))
saveOrTake(300);
else if(Thread.currentThread().getName().equals("出纳"))
saveOrTake(150);
}
public synchronized void saveOrTake(int amount){
if(Thread.currentThread().getName().equals("会计")){
for(int i=1;i<=3;i++){
money=money+amount/3;
System.out.println(Thread.currentThread().getName()+"存入"+amount/3+"万元"+",账户有"+money+"万元");
try{
Thread.sleep(1000);
}catch(InterruptedException e){}
}
}
else if(Thread.currentThread().getName().equals("出纳")){
for(int i=1;i<=3;i++){
money=money-amount/3;
System.out.println(Thread.currentThread().getName()+"取出"+amount/3+"万元"+",账户有"+money+"万元");
try{
Thread.sleep(1000);
}catch(InterruptedException e){}
}
}
}
}
在eclipse中能运行countant线程,不能运行cashier线程,然后我到控制台运行,结果直接报错了!!!!!!!!!!!!
有没有哪位老哥帮我看下为什么我下面这段代码的cashier线程不能执行
最新推荐文章于 2021-10-07 14:00:00 发布