Daemon-Threads in Python
-
Setzen Sie den
daemon
-Parameter, um einen Daemon-Thread in Python zu erstellen -
Verwenden Sie die Funktion
setDaemon()
, um einen Thread in einen Daemon-Thread in Python umzuwandeln
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 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