Subprocesos de daemon en Python

Manav Narula 30 enero 2023
  1. Establezca el parámetro daemon para crear un subproceso de daemon en Python
  2. Use la función setDaemon() para cambiar un hilo a un hilo de Daemon en Python
Subprocesos de daemon en Python

Los subprocesos son una pequeña secuencia de instrucciones para ser procesadas, y podemos tener diferentes subprocesos ejecutándose simultáneamente para aumentar la eficiencia. Tenemos subprocesos daemon y subprocesos no daemon.

Este tutorial discutirá los subprocesos de daemon en Python.

Establezca el parámetro daemon para crear un subproceso de daemon en Python

Los subprocesos que admiten el no demonio y el subproceso principal se denominan subprocesos demonio. No bloquean la salida del subproceso principal. los subprocesos que no son demonios también pueden ejecutarse después de la ejecución del subproceso principal, pero los subprocesos Daemon detienen la ejecución con el subproceso principal.

Es por eso que los subprocesos daemon actúan como un buen soporte para los subprocesos principales y no daemon. Usamos subprocesos de daemon para realizar funciones básicas como la recolección de basura, que se detendrá cuando finalice el programa principal, independientemente de si el proceso se completa o no.

Para crear un subproceso daemon, establecemos el parámetro daemon de la función threading.Thread() como True.

Por ejemplo:

import threading
import time


def thread_x():
    print("Start ", threading.currentThread().name)
    time.sleep(5)
    print("Finish ", threading.currentThread().name)


def thread_y():
    print("Start ", threading.currentThread().name)
    print("Finish ", threading.currentThread().name)


x = threading.Thread(target=thread_x, name="Thread-X", daemon=True)
y = threading.Thread(target=thread_y, name="Thread-Y")


x.start()
y.start()

Producción :

Start  Thread-X
Start  Thread-Y
Finish  Thread-Y

En el ejemplo, podemos observar que el hilo x, un hilo daemon, detiene la ejecución cuando el hilo no daemon y deja de ejecutarse y el programa termina.

Use la función setDaemon() para cambiar un hilo a un hilo de Daemon en Python

También podemos usar la función setDaemon() para cambiar un hilo y convertirlo en un hilo demonio. Necesitamos pasar True como parámetro con esta función.

La función isDaemon() devolverá True si un hilo es un hilo demonio; en caso contrario, devolverá false.

Ahora usaremos estos métodos en el siguiente ejemplo.

import threading
import time


def thread_x():
    print("Start ", threading.currentThread().name)
    time.sleep(5)
    print("Finish ", threading.currentThread().name)


def thread_y():
    print("Start ", threading.currentThread().name)
    print("Finish ", threading.currentThread().name)


x = threading.Thread(target=thread_x, name="Thread-X")
y = threading.Thread(target=thread_y, name="Thread-Y")

x.setDaemon(True)
print(x.isDaemon())
print(y.isDaemon())

x.start()
y.start()

Producción :

True
False
Start  Thread-X
Start  Thread-Y
Finish  Thread-Y
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