Heim Backend-Entwicklung Python-Tutorial Sortierung von Python-Threads

Sortierung von Python-Threads

Dec 09, 2016 pm 02:11 PM
python

Threads haben fünf Zustände

Neu, bereit, läuft, blockiert und tot.

Es gibt drei Blockierungssituationen:

Synchronisierte Blockierung bezieht sich auf den Status konkurrierender Sperren. Der Thread wechselt in diesen Status, wenn die Sperre angefordert wird, und kehrt in den laufenden Status zurück Sobald die Sperre erfolgreich erhalten wurde, bezieht sich die Warteblockierung auf den Status des Wartens auf Benachrichtigungen von anderen Threads. Nachdem der Thread die bedingte Sperre erhalten hat, wird dieser Status aktiviert, sobald andere Threads Benachrichtigungen senden. Der Thread tritt in den synchronen Blockierungszustand ein und konkurriert erneut um die bedingte Sperre.

Andere Blockierung bezieht sich auf die Blockierung beim Aufrufen von time.sleep(), anotherthread.join() oder beim Warten auf IO Der Thread gibt die erworbene Sperre nicht frei.

Python bietet zwei Möglichkeiten, Threads zu verwenden: eine ist funktional und die andere ist Klassenpaketierung.

* Thread
* Threading

1. Thread:

thread.start_new_thread ( function , args [ , kwargs ] )
>>> import thread
>>> dir(thread)
['LockType', '__doc__', '__name__', '__package__', '_count', '_local', 'allocate', 'allocate_lock', 'error', 'exit', 'exit_thread', 'get_ident', 'interrupt_main', 'stack_size', 'start_new', 'start_new_thread']
Nach dem Login kopieren
Rufen Sie den Thread auf Modul Die start_new_thread()-Funktion zum Generieren eines neuen Threads.


2. Threading:

>>> import threading
>>> dir(threading)
['BoundedSemaphore', 'Condition', 'Event', 'Lock', 'RLock', 'Semaphore', 'Thread', 'ThreadError', 'Timer', '_BoundedSemaphore', '_Condition', '_DummyThread', '_Event', '_MainThread', '_RLock', '_Semaphore', '_Timer', '_VERBOSE', '_Verbose', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_active', '_active_limbo_lock', '_after_fork', '_allocate_lock', '_counter', '_enumerate', '_format_exc', '_get_ident', '_limbo', '_newname', '_pickSomeNonDaemonThread', '_profile_hook', '_shutdown', '_sleep', '_start_new_thread', '_sys', '_test', '_time', '_trace_hook', 'activeCount', 'active_count', 'currentThread', 'current_thread', 'deque', 'enumerate', 'local', 'setprofile', 'settrace', 'stack_size', 'warnings']
Nach dem Login kopieren
Gemeinsame Methoden, die vom Threading-Modul bereitgestellt werden:
>>> dir(threading.Thread)
['_Thread__bootstrap', '_Thread__bootstrap_inner', '_Thread__delete', '_Thread__exc_clear', '_Thread__exc_info', '_Thread__initialized', '_Thread__stop', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_block', '_note', '_reset_internal_locks', '_set_daemon', '_set_ident', 'daemon', 'getName', 'ident', 'isAlive', 'isDaemon', 'is_alive', 'join', 'name', 'run', 'setDaemon', 'setName', 'start']
Nach dem Login kopieren


threading.currentThread(): Gibt die aktuelle Thread-Variable zurück .

threading.enumerate(): Gibt eine Liste mit laufenden Threads zurück. „Laufen“ bezieht sich auf den Thread nach dem Start und vor dem Ende, mit Ausnahme von Threads vor dem Start und nach der Beendigung.

threading.activeCount(): Gibt die Anzahl der laufenden Threads zurück, was das gleiche Ergebnis wie len(threading.enumerate()) hat.

Erben Sie die threading.Thread-Methode und überschreiben Sie die run-Methode.

Prototyp der Initialisierungsfunktion der Threading.Thread-Klasse: def __init__(self, group=None, target=None, name=None, args=(), kwargs={})
Die Parametergruppe ist reserviert für zukünftige Erweiterungen;
Das Parameterziel ist ein aufrufbares Objekt (auch Aktivität [Aktivität] genannt), das nach dem Start des Threads ausgeführt wird.
Der Parametername ist der Name des Threads. Der Standardwert ist „Thread-N“, wobei N eine Zahl ist.
Die Parameter args und kwargs stellen beim Aufruf von target die Parameterliste bzw. die Schlüsselwortparameter dar.


join()-Methode, der Thread, der diese Methode aufruft, wartet, bis das Thread-Objekt abgeschlossen ist, und setzt dann die Ausführung fort.
Der Aufruf von Thread.join blockiert den aufrufenden Thread, bis der aufgerufene Thread seine Ausführung beendet oder eine Zeitüberschreitung auftritt. Der Parameter timeout ist ein numerischer Typ und gibt die Timeout-Zeit an. Wenn dieser Parameter nicht angegeben wird, wird der aufrufende Thread blockiert, bis der aufgerufene Thread endet.

threading.Lock-Objekt: Mutex, mit den Methoden acquire() und release()

RLock ermöglicht die mehrfache Erfassung im selben Thread. Aber Lock lässt dies nicht zu. Hinweis: Wenn RLock verwendet wird, müssen Acquire und Release paarweise auftreten, d. h. Acquire wird n-mal aufgerufen und Release muss n-mal aufgerufen werden, um die belegte Sperre wirklich freizugeben.

threading.Condition-Objekt: Bedingungsvariable Wenn dieses Objekt erstellt wird, enthält es ein Lock-Objekt (da die Bedingungsvariable immer zusammen mit Mutex verwendet wird). Die Methoden „acquire()“ und „release()“ können für das Condition-Objekt aufgerufen werden, um potenzielle Lock-Objekte zu steuern.



Condition.wait([timeout]): Die Wartemethode gibt den belegten internen Speicher frei und der Thread wird angehalten, bis er nach Erhalt einer Benachrichtigung geweckt wird oder eine Zeitüberschreitung (bei Zeitüberschreitung) auftritt Parameter wird mit Wörtern bereitgestellt). Wenn der Thread aufgeweckt wird und den Thread erneut belegt, wird das Programm weiter ausgeführt.

Condition.notify(): Weckt einen angehaltenen Thread auf (falls es einen angehaltenen Thread gibt). Hinweis: Die Methode notify() gibt den belegten Speicher nicht frei.

Condition.notifyAll() Weckt alle angehaltenen Threads auf (falls es angehaltene Threads gibt). Hinweis: Diese Methoden geben den belegten Speicher nicht frei.


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 KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

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)

So öffnen Sie das XML -Format So öffnen Sie das XML -Format Apr 02, 2025 pm 09:00 PM

Verwenden Sie die meisten Texteditoren, um XML -Dateien zu öffnen. Wenn Sie eine intuitivere Baumanzeige benötigen, können Sie einen XML -Editor verwenden, z. B. Sauerstoff XML -Editor oder XMLSPY. Wenn Sie XML -Daten in einem Programm verarbeiten, müssen Sie eine Programmiersprache (wie Python) und XML -Bibliotheken (z. B. XML.etree.elementtree) verwenden, um zu analysieren.

So verschönern Sie das XML -Format So verschönern Sie das XML -Format Apr 02, 2025 pm 09:57 PM

Die XML -Verschönerung verbessert im Wesentlichen seine Lesbarkeit, einschließlich angemessener Einkerbung, Zeilenpausen und Tag -Organisation. Das Prinzip besteht darin, den XML -Baum zu durchqueren, die Eindrücke entsprechend der Ebene hinzuzufügen und leere Tags und Tags, die Text enthalten, zu verarbeiten. Pythons xml.etree.elementtree -Bibliothek bietet eine bequeme Funktion hübsch_xml (), die den oben genannten Verschönerungsprozess implementieren kann.

Wie konvertiere ich XML -Dateien in PDF auf Ihrem Telefon? Wie konvertiere ich XML -Dateien in PDF auf Ihrem Telefon? Apr 02, 2025 pm 10:12 PM

Mit einer einzigen Anwendung ist es unmöglich, XML -zu -PDF -Konvertierung direkt auf Ihrem Telefon zu vervollständigen. Es ist erforderlich, Cloud -Dienste zu verwenden, die in zwei Schritten erreicht werden können: 1. XML in PDF in der Cloud, 2. Zugriff auf die konvertierte PDF -Datei auf dem Mobiltelefon konvertieren oder herunterladen.

Gibt es eine mobile App, die XML in PDF umwandeln kann? Gibt es eine mobile App, die XML in PDF umwandeln kann? Apr 02, 2025 pm 09:45 PM

Es gibt keine App, die alle XML -Dateien in PDFs umwandeln kann, da die XML -Struktur flexibel und vielfältig ist. Der Kern von XML zu PDF besteht darin, die Datenstruktur in ein Seitenlayout umzuwandeln, für das XML analysiert und PDF generiert werden muss. Zu den allgemeinen Methoden gehören das Parsen von XML mithilfe von Python -Bibliotheken wie ElementTree und das Generieren von PDFs unter Verwendung der ReportLab -Bibliothek. Für komplexe XML kann es erforderlich sein, XSLT -Transformationsstrukturen zu verwenden. Wenn Sie die Leistung optimieren, sollten Sie Multithread- oder Multiprozesse verwenden und die entsprechende Bibliothek auswählen.

Ist die Konversionsgeschwindigkeit beim Umwandeln von XML in PDF auf Mobiltelefon schnell? Ist die Konversionsgeschwindigkeit beim Umwandeln von XML in PDF auf Mobiltelefon schnell? Apr 02, 2025 pm 10:09 PM

Die Geschwindigkeit der mobilen XML zu PDF hängt von den folgenden Faktoren ab: der Komplexität der XML -Struktur. Konvertierungsmethode für mobile Hardware-Konfiguration (Bibliothek, Algorithmus) -Codierungsoptimierungsmethoden (effiziente Bibliotheken, Optimierung von Algorithmen, Cache-Daten und Nutzung von Multi-Threading). Insgesamt gibt es keine absolute Antwort und es muss gemäß der spezifischen Situation optimiert werden.

Wie steuert ich die Größe von XML, die in Bilder konvertiert sind? Wie steuert ich die Größe von XML, die in Bilder konvertiert sind? Apr 02, 2025 pm 07:24 PM

Um Bilder über XML zu generieren, müssen Sie Grafikbibliotheken (z. B. Kissen und Jfreechart) als Brücken verwenden, um Bilder basierend auf Metadaten (Größe, Farbe) in XML zu generieren. Der Schlüssel zur Steuerung der Bildgröße besteht darin, die Werte der & lt; width & gt; und & lt; Höhe & gt; Tags in XML. In praktischen Anwendungen haben jedoch die Komplexität der XML -Struktur, die Feinheit der Graphenzeichnung, die Geschwindigkeit der Bilderzeugung und des Speicherverbrauchs und die Auswahl der Bildformate einen Einfluss auf die generierte Bildgröße. Daher ist es notwendig, ein tiefes Verständnis der XML -Struktur zu haben, die in der Grafikbibliothek kompetent ist, und Faktoren wie Optimierungsalgorithmen und Bildformatauswahl zu berücksichtigen.

Gibt es eine mobile App, die XML in PDF umwandeln kann? Gibt es eine mobile App, die XML in PDF umwandeln kann? Apr 02, 2025 pm 08:54 PM

Eine Anwendung, die XML direkt in PDF konvertiert, kann nicht gefunden werden, da es sich um zwei grundlegend unterschiedliche Formate handelt. XML wird zum Speichern von Daten verwendet, während PDF zur Anzeige von Dokumenten verwendet wird. Um die Transformation abzuschließen, können Sie Programmiersprachen und Bibliotheken wie Python und ReportLab verwenden, um XML -Daten zu analysieren und PDF -Dokumente zu generieren.

Wie konvertieren Sie XML in Ihr Telefon in PDF? Wie konvertieren Sie XML in Ihr Telefon in PDF? Apr 02, 2025 pm 10:18 PM

Es ist nicht einfach, XML direkt auf Ihr Telefon in PDF umzuwandeln, kann jedoch mit Hilfe von Cloud -Diensten erreicht werden. Es wird empfohlen, eine leichte mobile App zu verwenden, um XML -Dateien hochzuladen und generierte PDFs zu empfangen und sie mit Cloud -APIs zu konvertieren. Cloud -APIs verwenden serverlose Computerdienste, und die Auswahl der richtigen Plattform ist entscheidend. Bei der Behandlung von XML -Parsen und PDF -Generation müssen Komplexität, Fehlerbehebung, Sicherheit und Optimierungsstrategien berücksichtigt werden. Der gesamte Prozess erfordert, dass die Front-End-App und die Back-End-API zusammenarbeiten, und es erfordert ein gewisses Verständnis einer Vielzahl von Technologien.

See all articles