⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 例九.txt

📁 这是一本java基础教程 对新手上路有很大帮助
💻 TXT
字号:
public class Example8_9{
    public static void main(String args[ ]){
        String accountantName="会计",cashierName="出纳";
        Bank bank=new Bank(accountantName,cashierName);
        Thread accountant,cashier;
        accountant=new Thread(bank);
        cashier=new Thread(bank);
        accountant.setName(accountantName);
        cashier.setName(cashierName); 
        accountant.start();
        cashier.start();
    }
}
class Bank implements Runnable{
    int money=300;
    String accountantName,cashierName;
    public Bank(String s1,String s2){
        accountantName=s1;
        cashierName=s2;  
    }
    public void run(){
        saveOrTake(30);        //线程占有CPU资源期间调用了同步方法
    }
    public synchronized void saveOrTake(int number){    //同步方法
        if(Thread.currentThread().getName().equals(accountantName)){
           for(int i=1;i<=3;i++){
              money=money+number;  
              try {  Thread.sleep(1000); //存入30万稍歇一下,出纳仍不能使用该方法
              }             
              catch(InterruptedException e) {}
              System.out.println("我是"+accountantName+"目前帐上有"+money+"万");
           }
        }
        else if(Thread.currentThread().getName().equals(cashierName)){
           for(int i=1;i<=2;i++){
              money=money-number/2;  
              try{  Thread.sleep(1000);
}
              catch(InterruptedException e){}
              System.out.println("我是"+cashierName+"目前帐上有"+money+"万");
           }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -