


Kann ein laufender Python-Thread ordnungsgemäß oder erzwungen gestoppt werden?
Kann ein laufender Thread abrupt beendet werden?
Obwohl dies im Allgemeinen kein guter Ansatz ist, ist es möglich, einen laufenden Thread in Python abrupt zu beenden . Dieser Ansatz ist jedoch nicht allgemein anwendbar.
Überlegungen zur ordnungsgemäßen Beendigung
Berücksichtigen Sie die folgenden Szenarien:
- Kritische Ressource im Besitz der Thread muss ordnungsgemäß geschlossen werden.
- Mehrere vom Zielthread erstellte Threads, die ebenfalls Folgendes erfordern Beendigung.
In diesen Fällen ist es besser, ein Exit_request-Flag zu verwenden, das regelmäßig vom Zielthread überprüft wird, um bei Bedarf einen Exit auszulösen.
Codebeispiel für eine ordnungsgemäße Beendigung:
import threading class StoppableThread(threading.Thread): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._stop_event = threading.Event() def stop(self): self._stop_event.set() def stopped(self): return self._stop_event.is_set()
Rufen Sie „stop()“ auf, wenn der Thread beendet werden soll, und schließen Sie dann „join()“ an, um sicherzustellen, dass es ordnungsgemäß funktioniert Beendigung.
Thread-Beendigung erzwingen
In bestimmten Fällen kann eine erzwungene Thread-Beendigung erforderlich sein. Erwägen Sie externe Bibliotheksaufrufe, die zu langen Verzögerungen führen.
Auslösen von Ausnahmen mit ThreadWithExc
Die ThreadWithExc-Klasse ermöglicht das Auslösen von Ausnahmen innerhalb eines Threads von einem anderen Thread:
def _async_raise(tid, exctype): # Raises an Exception (exctype) in thread with ID (tid) if not inspect.isclass(exctype): raise TypeError("Only types can be raised (not instances)") class ThreadWithExc(threading.Thread): def raise_exc(self, exctype): # Raises exctype in the context of the current thread _async_raise(self._get_my_tid(), exctype)
Beachten Sie, dass diese Methode nicht zuverlässig ist, wenn sich der Thread außerhalb des Python-Interpreters befindet. Stellen Sie sicher, dass der Thread die spezifische Ausnahme abfängt, um die erforderliche Bereinigung durchzuführen.
Das obige ist der detaillierte Inhalt vonKann ein laufender Python-Thread ordnungsgemäß oder erzwungen gestoppt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Python wird in den Bereichen Webentwicklung, Datenwissenschaft, maschinelles Lernen, Automatisierung und Skripten häufig verwendet. 1) In der Webentwicklung vereinfachen Django und Flask Frameworks den Entwicklungsprozess. 2) In den Bereichen Datenwissenschaft und maschinelles Lernen bieten Numpy-, Pandas-, Scikit-Learn- und TensorFlow-Bibliotheken eine starke Unterstützung. 3) In Bezug auf Automatisierung und Skript ist Python für Aufgaben wie automatisiertes Test und Systemmanagement geeignet.

Sie können die Grundlagen von Python innerhalb von zwei Stunden lernen. 1. Lernen Sie Variablen und Datentypen, 2. Master -Steuerungsstrukturen wie wenn Aussagen und Schleifen, 3. Verstehen Sie die Definition und Verwendung von Funktionen. Diese werden Ihnen helfen, einfache Python -Programme zu schreiben.

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Wie kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...

Laden Sie Gurkendateien in Python 3.6 Umgebungsbericht Fehler: ModulenotFoundError: Nomodulennamen ...

Wie löste ich das Problem der Jiebeba -Wortsegmentierung in der malerischen Spot -Kommentaranalyse? Wenn wir malerische Spot -Kommentare und -analysen durchführen, verwenden wir häufig das Jieba -Word -Segmentierungstool, um den Text zu verarbeiten ...

Wie benutze ich den regulären Ausdruck, um das erste geschlossene Tag zu entsprechen und anzuhalten? Im Umgang mit HTML oder anderen Markup -Sprachen sind häufig regelmäßige Ausdrücke erforderlich, um ...

Verständnis der Anti-Crawling-Strategie von Investing.com Viele Menschen versuchen oft, Nachrichten von Investing.com (https://cn.investing.com/news/latest-news) zu kriechen ...


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.