Вопрос пользователя:
Ответ нейросети:
import threading
import random
class BankAccount:
def __init__(self):
self.balance = 0
self.lock = threading.Lock()
def deposit(self):
for _ in range(100):
amount = random.randint(50, 500)
self.balance += amount
print(f"Пополнение: {amount}. Баланс: {self.balance}")
if self.balance >= 500 and self.lock.locked():
self.lock.release()
def take(self):
for _ in range(100):
amount = random.randint(50, 500)
print(f"Запрос на {amount}")
if amount <= self.balance:
self.balance -= amount
print(f"Снятие: {amount}. Баланс: {self.balance}")
else:
print("Запрос отклонён, недостаточно средств")
self.lock.acquire()
# Пример использования
account = BankAccount()
thread1 = threading.Thread(target=account.deposit)
thread2 = threading.Thread(target=account.take)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
Напишите нам, если в вопросе есть ваши персональные данные ([email protected])
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.