模拟一个简单的银行系统,使用两个不同的线程向同一个账户存钱。 账户的初始余额是1000元,两个线程每次存储100元,分别各存储1000元,不允许出现错误数据
时间: 2024-05-13 08:18:48 浏览: 79
下面是一个简单的银行系统的示例代码,使用两个线程进行存钱操作:
```python
import threading
class BankAccount:
def __init__(self, balance=1000):
self.balance = balance
def deposit(self, amount):
self.balance += amount
def withdraw(self, amount):
if self.balance >= amount:
self.balance -= amount
return True
else:
return False
account = BankAccount()
def deposit_thread1():
for i in range(10):
account.deposit(100)
def deposit_thread2():
for i in range(10):
account.deposit(100)
thread1 = threading.Thread(target=deposit_thread1)
thread2 = threading.Thread(target=deposit_thread2)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
print("Final balance:", account.balance)
```
这里我们定义了一个 `BankAccount` 类来表示银行账户,其中包含了一个 `balance` 属性表示账户余额,以及 `deposit` 和 `withdraw` 方法来进行存款和取款操作。在这个示例中,我们只使用了 `deposit` 方法。
我们创建了两个线程 `thread1` 和 `thread2` 分别对账户进行存款操作。每个线程都会存储100元,执行10次,总共存储了1000元。
最后,我们使用 `join` 方法等待两个线程执行完毕,然后打印出账户的最终余额。在这个示例中,由于我们使用了线程锁,不会出现错误数据。
阅读全文