Python3-Multithreading

(*-*)浩
Freigeben: 2019-09-02 14:40:15
Original
3826 Leute haben es durchsucht

Python3-Multithreading

Multithreading ähnelt der gleichzeitigen Ausführung mehrerer verschiedener Programme: (Empfohlenes Lernen: Webfront -end Video-Tutorial )

Durch die Verwendung von Threads können langfristige Programmaufgaben für die Verarbeitung in den Hintergrund gerückt werden.

Die Benutzeroberfläche kann attraktiver sein. Wenn der Benutzer beispielsweise auf eine Schaltfläche klickt, um die Verarbeitung bestimmter Ereignisse auszulösen, kann ein Fortschrittsbalken angezeigt werden, der den Fortschritt der Verarbeitung anzeigt.

Das Programm läuft möglicherweise schneller.

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.

Jeder unabhängige Thread hat 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.

Threads können vorbelegt (unterbrochen) werden.

Ein Thread kann vorübergehend angehalten werden (auch Ruhezustand genannt), während andere Threads ausgeführt werden – dies wird als Thread-Zurücksetzen bezeichnet.

Threads können unterteilt werden in:

Kernel-Threads: vom Betriebssystemkernel erstellt und widerrufen.

Benutzer-Thread: Ein im Benutzerprogramm implementierter Thread ohne Kernel-Unterstützung.

Die beiden häufig verwendeten Module in Python3-Threads sind:

_thread

Threading (empfohlen)

Thread-Modul wurde aufgegeben . Benutzer können stattdessen das Threading-Modul verwenden. Daher kann das Modul „thread“ in Python3 nicht mehr verwendet werden. Aus Kompatibilitätsgründen hat Python3 den Thread in „_thread“ umbenannt.

Beginnen Sie mit dem Erlernen von Python-Threads

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] )
Nach dem Login kopieren

Parameterbeschreibung:

Funktion – Thread-Funktion.

args – die an die Thread-Funktion übergebenen Parameter, es muss ein Tupeltyp sein.

kwargs – Optionale Parameter.

Beispiel:

#!/usr/bin/python3

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: 无法启动线程")

while 1:
   pass
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPython3-Multithreading. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage