例九.txt
来自「这是一本java基础教程 对新手上路有很大帮助」· 文本 代码 · 共 45 行
TXT
45 行
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 + =
减小字号Ctrl + -
显示快捷键?