Heim Backend-Entwicklung Python-Tutorial Python3-Multithreading

Python3-Multithreading

Sep 02, 2019 pm 02:40 PM
python

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!

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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die Vor- und Nachteile des Templatings? Was sind die Vor- und Nachteile des Templatings? May 08, 2024 pm 03:51 PM

Was sind die Vor- und Nachteile des Templatings?

So laden Sie Deepseek Xiaomi herunter So laden Sie Deepseek Xiaomi herunter Feb 19, 2025 pm 05:27 PM

So laden Sie Deepseek Xiaomi herunter

Google AI kündigt Gemini 1.5 Pro und Gemma 2 für Entwickler an Google AI kündigt Gemini 1.5 Pro und Gemma 2 für Entwickler an Jul 01, 2024 am 07:22 AM

Google AI kündigt Gemini 1.5 Pro und Gemma 2 für Entwickler an

Für nur 250 US-Dollar zeigt Ihnen der technische Leiter von Hugging Face Schritt für Schritt, wie Sie Llama 3 verfeinern Für nur 250 US-Dollar zeigt Ihnen der technische Leiter von Hugging Face Schritt für Schritt, wie Sie Llama 3 verfeinern May 06, 2024 pm 03:52 PM

Für nur 250 US-Dollar zeigt Ihnen der technische Leiter von Hugging Face Schritt für Schritt, wie Sie Llama 3 verfeinern

Teilen Sie mehrere .NET-Open-Source-KI- und LLM-bezogene Projekt-Frameworks Teilen Sie mehrere .NET-Open-Source-KI- und LLM-bezogene Projekt-Frameworks May 06, 2024 pm 04:43 PM

Teilen Sie mehrere .NET-Open-Source-KI- und LLM-bezogene Projekt-Frameworks

Eine vollständige Anleitung zum Debuggen und Analysieren von Golang-Funktionen Eine vollständige Anleitung zum Debuggen und Analysieren von Golang-Funktionen May 06, 2024 pm 02:00 PM

Eine vollständige Anleitung zum Debuggen und Analysieren von Golang-Funktionen

Wie fragst du ihn Deepseek? Wie fragst du ihn Deepseek? Feb 19, 2025 pm 04:42 PM

Wie fragst du ihn Deepseek?

So speichern Sie die Evaluierungsfunktion So speichern Sie die Evaluierungsfunktion May 07, 2024 am 01:09 AM

So speichern Sie die Evaluierungsfunktion

See all articles