EjercicioLock terminado

master
LuisCorGon 10 months ago
commit b19be1dbe2

@ -0,0 +1,36 @@
import threading
class Cajero:
def __init__(self):
self.saldo = 1000
self.lock = threading.Lock()
def retirar_dinero(self,n):
with self.lock:
if self.saldo >= n:
self.saldo = self.saldo - n
return True
else:
return False
cuenta = Cajero()
retiros = []
def realizar_retiro(cuenta, dinero):
if Cajero.retirar_dinero(cuenta, dinero):
print(f"Retiro exitoso. Nuevo saldo: {cuenta.saldo}")
else:
print("Saldo insuficiente")
for i in range(10):
retiro = threading.Thread(target=realizar_retiro, args=(cuenta, 200))
retiros.append(retiro)
for retiro in retiros:
retiro.start()
for retiro in retiros:
retiro.join()
print(f"Saldo final {cuenta.saldo}")
Loading…
Cancel
Save

Powered by INFORMATICA.FP.EDU.ES.