import threading class Cuenta: def __init__(self, saldoInicial): self.saldo = saldoInicial self.lock = threading.Lock() def depositar(self, cantidad): self.lock.acquire() self.saldo += cantidad self.printSaldo() self.lock.release() def extraer(self, cantidad): self.lock.acquire() if self.saldo < cantidad: print("No hay saldo suficiente") self.lock.release() return False self.saldo -= cantidad self.printSaldo() self.lock.release() def printSaldo(self): print("El saldo es: ", self.saldo) cuenta = Cuenta(1000) cuenta.printSaldo() for i in range(20): threading.Thread(target=cuenta.extraer, args=(100,)).start()