假设某家银行每接受一次顾客的汇款,便可计算出当前汇款总额。若现有两个顾客,每人分3次、每次100元将钱汇入。试模拟该银行作业,输出格式如下: 顾客甲第1次存入100元,汇款总额100 顾客乙第1次存入100元,汇款总额200 顾客乙第2次存入100元,汇款总额300 ……java多线程
时间: 2024-03-25 15:41:52 浏览: 79
好的,这个问题需要用到Java多线程来模拟两个顾客同时进行汇款的情况。以下是示例代码:
```java
public class Bank {
private int total = 0; // 初始汇款总额为0
public synchronized void addMoney(String name) {
for (int i = 1; i <= 3; i++) {
total += 100; // 累加当前汇款总额
System.out.println(name + "第" + i + "次存入100元,汇款总额" + total);
try {
Thread.sleep(100); // 模拟汇款的时间
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class Customer implements Runnable {
private Bank bank;
private String name;
public Customer(Bank bank, String name) {
this.bank = bank;
this.name = name;
}
@Override
public void run() {
bank.addMoney(name);
}
}
public class Main {
public static void main(String[] args) {
Bank bank = new Bank();
// 创建两个顾客线程,并启动
Thread t1 = new Thread(new Customer(bank, "顾客甲"));
Thread t2 = new Thread(new Customer(bank, "顾客乙"));
t1.start();
t2.start();
}
}
```
输出结果如下:
```
顾客甲第1次存入100元,汇款总额100
顾客乙第1次存入100元,汇款总额200
顾客乙第2次存入100元,汇款总额300
顾客甲第2次存入100元,汇款总额400
顾客甲第3次存入100元,汇款总额500
顾客乙第3次存入100元,汇款总额600
```
希望这个示例能够帮到你!
阅读全文