Unir hilos en Python
El subproceso múltiple nos permite obtener una optimización completa de la CPU.
Los subprocesos no requieren una sobrecarga de memoria excesiva y varios subprocesos también pueden comunicarse y compartir información. En Python, usamos el módulo threading
para trabajar con subprocesos.
Ahora discutiremos el método join()
con subprocesos en Python. Usamos esta función para bloquear el hilo de llamada hasta que termine el hilo en él.
Normalmente puede terminar o debido a alguna excepción y tiempo de espera. El valor del tiempo de espera se puede mencionar en la función join()
también si es necesario.
Analicemos ahora esto con un ejemplo.
import threading
import time
class sample(threading.Thread):
def __init__(self, time):
super(sample, self).__init__()
self.time = time
self.start()
def run(self):
print(self.time, " starts")
for i in range(0, self.time):
time.sleep(1)
print(self.time, "has finished")
t3 = sample(3)
t2 = sample(2)
t1 = sample(1)
t3.join()
print("t3.join() has finished")
t2.join()
print("t2.join() has finished")
t1.join()
print("t1.join() has finished")
Producción :
3 starts
2 starts
1 starts
1 has finished
2 has finished
3 has finished
t3.join() has finished
t2.join() has finished
t1.join() has finished
En el ejemplo anterior, observe que los otros dos subprocesos terminan cuando finaliza t3
. Sin embargo, la función join()
retiene el hilo principal, y los otros hilos esperan a que termine.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn