Daemon-Threads in Python

Manav Narula 5 April 2022
  1. Setzen Sie den daemon-Parameter, um einen Daemon-Thread in Python zu erstellen
  2. Verwenden Sie die Funktion setDaemon(), um einen Thread in einen Daemon-Thread in Python umzuwandeln
Daemon-Threads in Python

Threads sind eine kleine Folge von Anweisungen, die verarbeitet werden sollen, und wir können verschiedene Threads gleichzeitig ausführen lassen, um die Effizienz zu steigern. Wir haben Daemon-Threads und Nicht-Daemon-Threads.

Dieses Tutorial behandelt Daemon-Threads in Python.

Setzen Sie den daemon-Parameter, um einen Daemon-Thread in Python zu erstellen

Die Threads, die den Nicht-Daemon und den Haupt-Thread unterstützen, werden als Daemon-Threads bezeichnet. Sie blockieren nicht das Beenden des Haupt-Threads. Nicht-Daemon-Threads können auch nach der Ausführung des Haupt-Threads ausgeführt werden, aber Daemon-Threads stoppen die Ausführung mit dem Haupt-Thread.

Aus diesem Grund fungieren Daemon-Threads als gute Unterstützung für die Haupt- und Nicht-Daemon-Threads. Wir verwenden Daemon-Threads, um grundlegende Funktionen wie die Garbage Collection auszuführen, die beendet wird, wenn das Hauptprogramm beendet wird, unabhängig davon, ob der Prozess abgeschlossen ist oder nicht.

Um einen Daemon-Thread zu erstellen, setzen wir den Parameter daemon der Funktion threading.Thread() auf True.

Beispielsweise:

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()

Ausgabe:

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

Im Beispiel können wir beobachten, dass der Thread x, ein Daemon-Thread, die Ausführung stoppt, wenn der Nicht-Daemon-Thread y die Ausführung stoppt und das Programm beendet wird.

Verwenden Sie die Funktion setDaemon(), um einen Thread in einen Daemon-Thread in Python umzuwandeln

Wir können auch die Funktion setDaemon() verwenden, um einen Thread zu ändern und ihn zu einem Daemon-Thread zu machen. Bei dieser Funktion müssen wir True als Parameter übergeben.

Die Funktion isDaemon() gibt True zurück, wenn ein Thread ein Daemon-Thread ist; andernfalls wird false zurückgegeben.

Wir werden diese Methoden nun im folgenden Beispiel verwenden.

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()

Ausgabe:

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

Verwandter Artikel - Python Thread