Heim >Backend-Entwicklung >Python-Tutorial >So führen Sie Python-Multithread-Programmierung durch und verstehen Python-Multithreading in einem Artikel
In diesem Artikel wird Python-Multithreading vorgestellt. Wenn Sie Python-Multithreading verstehen möchten, müssen Sie zunächst verstehen, was Threading ist.
Thread ist die kleinste Einheit, mit der das Betriebssystem die Betriebsplanung durchführen kann. Es wird in den Prozess eingebunden und ist die eigentliche Bedieneinheit im Prozess. Ein Thread bezieht sich auf einen einzelnen sequenziellen Kontrollfluss in einem Prozess. In einem Prozess können mehrere Threads gleichzeitig ausgeführt werden, und jeder Thread führt parallel unterschiedliche Aufgaben aus.
Und Multi-Threading ähnelt der gleichzeitigen Ausführung mehrerer verschiedener Programme:
1. Threads verwenden Aufgaben in Programmen, die lange dauern, können zur Verarbeitung in den Hintergrund verschoben werden.
2. Die Benutzeroberfläche kann attraktiver gestaltet werden, sodass, wenn der Benutzer auf eine Schaltfläche klickt, um die Verarbeitung bestimmter Ereignisse auszulösen, ein Fortschrittsbalken angezeigt werden kann, der den Fortschritt der Verarbeitung anzeigt
Die Laufgeschwindigkeit des Programms kann sich beschleunigen
3. Threads sind nützlicher bei der Implementierung einiger Warteaufgaben wie Benutzereingaben, Lesen und Schreiben von Dateien sowie Senden und Empfangen von Daten über das Netzwerk. In diesem Fall können wir einige wertvolle Ressourcen wie Speichernutzung usw. freigeben.
4. Es gibt Unterschiede zwischen Threads und Prozessen während der Ausführung. Jeder unabhängige Thread verfügt über einen Einstiegspunkt für die Programmausführung, eine sequentielle Ausführungssequenz und einen Ausstiegspunkt für das Programm. Threads können jedoch nicht unabhängig ausgeführt werden und müssen im Anwendungsprogramm vorhanden sein, und das Anwendungsprogramm bietet eine Steuerung für die Ausführung mehrerer Threads.
Jeder Thread verfügt über einen eigenen Satz von CPU-Registern, den sogenannten Thread-Kontext, der den Zustand der CPU-Register zum letzten Mal widerspiegelt, als der Thread ausgeführt wurde.
Der Befehlszeiger und das Stapelzeigerregister sind die beiden wichtigsten Register im Thread-Kontext. Der Thread wird immer im Prozesskontext ausgeführt. Diese Adressen werden verwendet, um den Speicher im Adressraum des Prozesses zu markieren der Thread.
5. Threads können vorab unterbrochen (unterbrochen) werden.
6. Ein Thread kann vorübergehend angehalten werden (auch Ruhezustand genannt), während andere Threads ausgeführt werden – dies ist der Rückzug des Threads.
Beginnen Sie mit dem Erlernen von Python-Multithreading
Es gibt zwei Möglichkeiten, Threads in Python zu verwenden: Funktionen oder Klassen zum Umschließen von Thread-Objekten.
Funktional: Rufen Sie die Funktion start_new_thread() im Thread-Modul auf, um einen neuen Thread zu generieren. Die Syntax lautet wie folgt:
thread.start_new_thread ( function, args[, kwargs] )
Parameterbeschreibung:
1.function – Thread-Funktion.
2.args – die an die Thread-Funktion übergebenen Parameter, es muss ein Tupeltyp sein.
3.kwargs – Optionale Parameter.
Angehängtes Beispiel
#!/usr/bin/python # -*- coding: UTF-8 -*- import thread import time # 为线程定义一个函数 def print_time( threadName, delay): count = 0 while count < 5: time.sleep(delay) count += 1 print "%s: %s" % ( threadName, time.ctime(time.time()) ) # 创建两个线程 try: thread.start_new_thread( print_time, ("Thread-1", 2, ) ) thread.start_new_thread( print_time, ("Thread-2", 4, ) ) except: print "Error: unable to start thread" while 1: pass
Das Ausgabeergebnis der Ausführung des obigen Programms ist wie folgt:
Thread-1: Thu Jan 22 15:42:17 2009 Thread-1: Thu Jan 22 15:42:19 2009 Thread-2: Thu Jan 22 15:42:19 2009 Thread-1: Thu Jan 22 15:42:21 2009 Thread-2: Thu Jan 22 15:42:23 2009 Thread-1: Thu Jan 22 15:42:23 2009 Thread-1: Thu Jan 22 15:42:25 2009 Thread-2: Thu Jan 22 15:42:27 2009 Thread-2: Thu Jan 22 15:42:31 2009 Thread-2: Thu Jan 22 15:42:35 2009
Das Ende des Threads basiert im Allgemeinen auf dem natürlichen Ende des Thread-Funktion; Dies kann auch in der Thread-Funktion erfolgen. Rufen Sie thread.exit() auf. Es wird eine SystemExit-Ausnahme ausgelöst, um den Zweck des Beendens des Threads zu erreichen
Das obige ist der detaillierte Inhalt vonSo führen Sie Python-Multithread-Programmierung durch und verstehen Python-Multithreading in einem Artikel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!