利用java的多线程实现:A、B两用户共用一个银行账户,此时用户A与用户B同时进入银行。其中A用户去取钱,B用户去存钱。存取完后都得输出账户余额
时间: 2024-02-13 07:00:43 浏览: 123
可以使用Java中的`Thread`类来实现多线程操作。下面是实现的代码:
```java
public class BankAccount {
private int balance = 1000;
// 取款操作
public synchronized void withdrawMoney(int amount) {
balance -= amount;
System.out.printf("A用户取款%d元,账户余额为%d元\n", amount, balance);
}
// 存款操作
public synchronized void depositMoney(int amount) {
balance += amount;
System.out.printf("B用户存款%d元,账户余额为%d元\n", amount, balance);
}
public static void main(String[] args) {
BankAccount account = new BankAccount();
// 用户A取款100元
Thread t1 = new Thread(() -> account.withdrawMoney(100));
// 用户B存款200元
Thread t2 = new Thread(() -> account.depositMoney(200));
// 启动线程
t1.start();
t2.start();
try {
// 等待线程结束
t1.join();
t2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 输出最终账户余额
System.out.printf("账户余额为%d元\n", account.balance);
}
}
```
在上述代码中,我们定义了一个`BankAccount`类,其中包含了取款和存款操作。这两个操作都使用`synchronized`关键字进行了同步,从而避免了线程安全问题。
然后我们利用`Thread`类创建了两个线程`t1`和`t2`,分别对应取款和存款操作。最后我们启动线程,并等待线程结束后输出最终的账户余额。
阅读全文
相关推荐

















