Threading in Python: Erfahren Sie, wie Sie mit Threads in Python arbeiten



In diesem Artikel zum Thema Threading in Python erfahren Sie, was Threads sind, welche Typen sie haben, wie Sie sie starten und optimal nutzen können

Heute, ist eine der beliebtesten Programmiersprachen der Welt. Seit seiner Gründung in den 1990er Jahren hat es eine große Anhängerschaft und Enthusiasten und Programmierer, die jeden Tag daran arbeiten, diese Programmiersprache zu verbessern. Unter den vielen Funktionen, die im Python-Ökosystem integriert sind, ist Threading eine der herausragendsten. Daher werden wir in diesem Artikel alles über Threading in Python sprechen, wie Sie es zusammen mit seinen Vor- und Nachteilen nutzen können.

Die folgenden Hinweise werden in diesem Artikel behandelt:





Fangen wir an

Threading in Python

Was ist ein Thread in Python?

Ein Thread in Python kann einfach als separater Ausführungsfluss definiert werden. Was dies einfach bedeutet, dass in Ihrem Programm zwei verschiedene Prozesse gleichzeitig ausgeführt werden. Ein interessanter Aspekt des Threading in Python ist die Tatsache, dass nach Version 3 mehrere Threads in Python nicht gleichzeitig ausgeführt werden, sondern nur scheinbar.



Es ist zwar ein erstaunliches Gefühl, zwei verschiedene Prozesse gleichzeitig auszuführen, aber man muss verstehen, dass die aktuelle Version von Python 3 und höher so codiert ist, dass zu einem bestimmten Zeitpunkt nur ein Prozess ausgeführt werden kann. Wenn Sie jedoch in CPython zwei oder mehr Prozesse gleichzeitig ausführen müssen, müssen Sie einen Teil Ihres Codes auch in anderen Sprachen wie C, C ++ und Java codieren und diese dann in Python durch Multithreading ausführen.

Einer der bekanntesten Vorteile des Threading in Python ist die Fähigkeit, die Klarheit des Designs zu verbessern.

Bevor wir eine Vorstellung von Threading in Python haben, lassen Sie uns verstehen, wie man einen Thread startet.



Starten eines Threads in Python

Nachdem Sie sich an die Definition eines Threads in Python gewöhnt haben, sehen wir uns ein Beispiel an, wie Sie Ihren eigenen Thread in Python erstellen können. Um einen Thread in Python zu erstellen, müssen Sie zuerst die Thread-Bibliothek importieren und dann anweisen, start () zu starten, wie im folgenden Beispiel gezeigt:

import logging import threading import time def thread_function (name): logging.info ('Thread% s: Start', Name) time.sleep (2) logging.info ('Thread% s: Finish', Name) wenn __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') logging.info ( 'Main & ampampampnbsp & ampampampnbsp: vor dem Erstellen des Threads') x = threading.Thread (target = thread_function, args = (1,)) logging.info ('Main & ampampampnbsp & ampampampnbsp: vor dem Ausführen des Threads') x.start () logging.info ('Main & ampampampnbsp & ampampampnbsp: Warten Sie, bis der Thread beendet ist. ') # x.join () logging.info (' Main & ampampampnbsp & ampampampnbsp: alles erledigt ')

Ausgabe

Ausgabe - Threading in Python - Edureka

Wenn Sie einen Thread in Python ausführen, geben Sie ihn als Funktion weiter, die eine Liste der Argumente enthält, die er ausführen muss. In dem oben gezeigten Beispiel weisen Sie Python an, den Thread thread_function () auszuführen und als Argument an 1 zu übergeben.

Wenn Sie das obige Programm ausführen, sieht die Ausgabe ungefähr so ​​aus.

Im nächsten Teil dieses Artikels zum Thema 'Threading in Python' erfahren Sie, was Daemon-Threads sind.

Was sind Daemon-Threads?

In der technischen Terminologie kann der Dämon als ein Prozess definiert werden, der hauptsächlich im Hintergrund ausgeführt wird. In Python hat ein Daemon-Thread jedoch eine ganz bestimmte Bedeutung. In Python wird ein Daemon-Thread in dem Moment heruntergefahren, in dem das Programm beendet wurde, obwohl es in anderen Programmiersprachen weiterhin im Hintergrund ausgeführt wird. Wenn in einem bestimmten Programm ein Thread nicht als Daemon-Thread programmiert ist, wartet der Interpreter darauf, dass er seinen Vorgang beendet, und fährt dann nur den Interpreter herunter.

Um dieses Konzept besser zu verstehen, schauen Sie sich das obige Beispiel an. In der vorletzten Zeile wartet das Programm einige Sekunden, nachdem alle Aufgaben erledigt wurden. Dies liegt daran, dass darauf gewartet wird, dass der nicht-dämonische Thread seinen Vorgang beendet und dann die Schnittstelle verlässt. Sobald der Thread seinen Vorgang beendet hat, wird nur das Programm beendet.

Lassen Sie uns nun das obige Programm ändern und sehen, was passiert, wenn wir einen Daemon-Thread in den Code einfügen.

Neuer Code: x = threading.Thread (target = thread_function, args = (1,), daemon = True)

Wenn Sie das obige Programm mit den vorgenommenen Änderungen ausführen, sieht es ungefähr so ​​aus.

Der Unterschied zwischen diesen beiden Ausgängen besteht darin, dass die letzte Zeile in der letzten fehlt. Die thread_function () konnte nicht abgeschlossen werden, da wir einen Daemon-Thread eingefügt haben und das Programm beendet wurde, sobald es das Ende erreicht hatte.

Beitritt zu einem Thread

Nachdem Sie nun das Konzept zum Erstellen eines Threads in Python sowie das Konzept eines dämonischen Threads kennengelernt haben, erfahren Sie, wie Sie Threads in Python verbinden können.

Mit der Funktion join () in Python können Sie zwei verschiedene Threads verbinden und einen anweisen, auf den anderen zu warten, bis die Ausführung abgeschlossen ist. Diese Funktion ist häufig nützlich, wenn Sie große Anwendungen codieren und alle Prozesse in einer bestimmten Reihenfolge ausgeführt werden müssen

Das letzte Stück dieses Artikels über 'Threading in Python' zeigt Ihnen die funktionierenden Multiple Threads.

Arbeiten mit mehreren Threads

In den obigen Beispielen haben wir darüber gesprochen, wie Sie mit zwei Threads gleichzeitig arbeiten können. Was aber, wenn Sie in einer bestimmten Situation mit mehreren Threads gleichzeitig arbeiten müssen? Schauen Sie sich zum besseren Verständnis der Situation das folgende Beispiel an.

import logging import threading import time def thread_function (name): logging.info ('Thread% s: Start', Name) time.sleep (2) logging.info ('Thread% s: Finish', Name) wenn __name__ == '__main__': format = '% (asctime) s:% (message) s' logging.basicConfig (format = format, level = logging.INFO, datefmt = '% H:% M:% S') threads = list ( ) für Index in Bereich (3): logging.info ('Main & ampampampnbsp & ampampampnbsp: Thread% d erstellen und starten', Index) x = threading.Thread (target = thread_function, args = (index,)) threads.append (x ) x.start () für Index, Thread in Aufzählung (Threads): logging.info ('Main & ampampampnbsp & ampampampnbsp: vor dem Verbinden von Thread% d.', Index) thread.join () logging.info ('Main & ampampampnbsp & ampampampnbsp: Thread% d erledigt ', Index)

Ausgabe

wie man sort c ++ benutzt

Im obigen Programm haben wir das gleiche Verfahren wie beim Importieren der Thread-Bibliothek, beim Starten des Threads, beim Erstellen mehrerer Threads und beim Verwenden der Funktion join () angewendet, um alle zusammen zu kombinieren und in einer bestimmten Reihenfolge auszuführen.

Wenn Sie das obige Programm ausführen, sieht das Ergebnis ungefähr so ​​aus.

Fazit

Es ist eine der praktischsten Funktionen von Python. Wenn Sie es richtig verwenden, können Sie Ihren gesamten Codierungsprozess viel einfacher und effizienter gestalten. Aus dem obigen Artikel hoffen wir, dass Sie die Grundlagen des Threading gelernt haben und es weiterhin in Ihrer täglichen Programmierung verwenden werden.

Ich hoffe, euch hat dieser Artikel gefallen.

Sie können sich eingehend mit Python und seinen verschiedenen Anwendungen vertraut machen für Live-Online-Schulungen mit 24-Stunden-Support und lebenslangem Zugriff.

Hast du eine Frage an uns? Erwähnen Sie sie im Kommentarbereich dieses Artikels und wir werden uns bei Ihnen melden.