📄 例九.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 + -