使用两个线程向同一个账户中存钱 每次存1000 共存三次。
时间: 2024-02-17 09:03:22 浏览: 61
好的,这是一个多线程的问题。我可以给你一个简单的 Python 代码实现:
```python
import threading
class BankAccount:
def __init__(self):
self.balance = 0
def deposit(self, amount):
print("Depositing {}...".format(amount))
self.balance += amount
print("New balance is {}.".format(self.balance))
account = BankAccount()
class DepositThread(threading.Thread):
def run(self):
for _ in range(3):
account.deposit(1000)
# 创建两个线程,同时向同一个账户中存钱
thread1 = DepositThread()
thread2 = DepositThread()
# 启动两个线程
thread1.start()
thread2.start()
# 等待两个线程结束
thread1.join()
thread2.join()
# 输出最终账户余额
print("Final balance is {}.".format(account.balance))
```
在这个例子中,我们创建了一个 `BankAccount` 类,其中包含一个 `deposit` 方法用于存钱。然后,我们创建了两个 `DepositThread` 类的对象,分别代表两个线程。在每个线程的 `run` 方法中,我们调用 `deposit` 方法三次,每次存入 1000 元。最后,我们启动两个线程,并等待它们结束,然后输出最终的账户余额。
需要注意的是,由于两个线程是同时运行的,如果不进行同步控制的话,就可能会出现竞态条件(race condition)的问题,导致最终的账户余额不正确。在这个例子中,我们没有进行同步控制,因此可能会出现问题。如果你想让程序更加健壮,请使用锁(lock)等同步控制机制来确保线程安全。
阅读全文