Unir hilos en Python

Manav Narula 22 enero 2022
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 Narula avatar Manav Narula avatar

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

Artículo relacionado - Python Thread