#Ejercicio: Imagina que tienes un sistema de cajeros automáticos con un saldo inicial de 1000 euros. #Varios usuarios pueden acceder al cajero simultáneamente para retirar dinero. #Tu tarea es asegurarte de que, cuando un usuario retire dinero, #el saldo se actualice correctamente sin ser afectado por las operaciones de otros usuarios. #Para ello, puedes utilizar la instrucción lock. Ejemplo de salida. import random import threading class Cajero: def __init__(self): self.saldoCajero = 1000 self.lock = threading.Lock() def mostarResultado(self,result,cantidad): if(result): print(f"Retirada exitosa de {cantidad}") else: print(f"Saldo insuficiente para retirar {cantidad}") def sacarDinero(self,cantidad): with self.lock: if(self.saldoCajero >= cantidad): self.saldoCajero -= cantidad self.mostarResultado(True,cantidad) else: self.mostarResultado(False,cantidad) cajero = Cajero() hilos = list() for i in range(random.randrange(1000)): t = threading.Thread(target=cajero.sacarDinero,args=(random.randrange(1,100),)) hilos.append(t) t.start() for t in hilos: t.join()