corrected infinite loop
This commit is contained in:
parent
8d446972d7
commit
377ca66aef
|
@ -0,0 +1,62 @@
|
||||||
|
### Thread03 ###
|
||||||
|
|
||||||
|
**Resultado:**
|
||||||
|
|
||||||
|
|
||||||
|
Tarea realizada
|
||||||
|
Tarea realizada
|
||||||
|
Tarea realizada
|
||||||
|
Tarea realizada
|
||||||
|
Tarea realizada
|
||||||
|
Tarea realizada
|
||||||
|
Tarea realizada
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
tarea NO REALIZADA
|
||||||
|
|
||||||
|
|
||||||
|
**Explicación:**
|
||||||
|
El ejercicio consiste de dos hilos. Uno crea 100 puntos (uno cada 1 segundo) y el otro crea 50 rayas (una cada 2 segundos).
|
||||||
|
En el output final podemos ver que, consistentemente aparecen dos puntos y una raya. La razón de que al principio aparezcan solo un punto y una raya es que, al correr lo dos hilos en paralelo, no siguen un orden exacto de impresión en consola. Sin embargo, al imprimirse más rápido los puntos que las rayas, el output "-..-" es el más común.
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
import threading
|
||||||
|
import time
|
||||||
|
import random
|
||||||
|
|
||||||
|
def tareaUno():
|
||||||
|
global Done
|
||||||
|
time.sleep(abs(random.gauss(mu=0.0, sigma=1.0)))
|
||||||
|
if not Done:
|
||||||
|
print("Tarea realizada")
|
||||||
|
time.sleep(0.12)
|
||||||
|
Done = True
|
||||||
|
else :
|
||||||
|
print ("tarea NO REALIZADA")
|
||||||
|
time.sleep(0.05)
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
def desactivar():
|
||||||
|
global Done
|
||||||
|
while True:
|
||||||
|
time.sleep(abs(random.gauss(mu=0.0, sigma=1.0)))
|
||||||
|
if Done:
|
||||||
|
Done = False
|
||||||
|
print("Desactivo")
|
||||||
|
|
||||||
|
if all(not t.is_alive() for t in hilos):
|
||||||
|
break
|
||||||
|
|
||||||
|
Done = False
|
||||||
|
hilos = list()
|
||||||
|
for i in range(50):
|
||||||
|
t = threading.Thread(target=tareaUno)
|
||||||
|
hilos.append(t)
|
||||||
|
t.start()
|
||||||
|
|
||||||
|
desbloqueo_thread = threading.Thread(target=desactivar)
|
||||||
|
desbloqueo_thread.start()
|
Loading…
Reference in New Issue