Привет! Чтобы твои потоки не ломали друг друга, можно применять блокировки с помощью `threading.Lock()`. Вот пример кода:
Программный код:
import threading
class BankAccount:
def __init__(self):
self.balance = 0
self.lock = threading.Lock()
def deposit(self, amount):
with self.lock:
temp = self.balance
temp += amount
self.balance = temp
account = BankAccount()
def make_deposit():
for _ in range(1000):
account.deposit(1)
threads = []
for i in range(10):
t = threading.Thread(target=make_deposit)
threads.append(t)
t.start()
for t in threads:
t.join()
print(f"Final balance: {account.balance}")
Таким образом, каждый поток будет использовать лок, и проблемы с одновременной записью не будет.