Asynchrones Programmieren und Multi -Threading: Zwei Methoden, die sich ergänzen
Viele Entwickler setzten zunächst die asynchrone Programmierung mit Multi -Thread gleich und denken, dass sie die Börsen sind, die Aufgaben an mehrere Prozessoren zuweisen. Wenn Sie jedoch sorgfältig studieren, werden Sie feststellen, dass es geringfügige, aber wichtige Unterschiede zwischen den beiden gibt.
Asynchronische Methode: Nicht -Blocking und bezogen auf den Kontext
asynchrones Methodendesign wird für nicht blockierende Operationen verwendet. Der Ausdruck "Warte" stoppt den aktuellen Thread während der Aufgabenausführung nicht. Stattdessen registrierte es die verbleibende Methode als Fortsetzung und gibt die Kontrolle an den Anrufer der asynchronen Methode zurück. Interessanterweise müssen asynchrone Methoden keine zusätzlichen Threads erstellen. Die asynchrone Methode erfordert nicht mehrere Threads, da sie im aktuellen Kontext der Synchronisation ausgeführt werden und nur die Threadzeit während der Aktivität verwenden. Obwohl "Task.run" die dichtes CPU -Arbeit in den Hintergrund -Thread deinstallieren kann, ist es ungültig, wenn Sie auf das Ergebnis warten.
Multi -Thread: Multi -Thread -Arbeit
Im Gegensatz dazu beinhalten Multi -Threads die Zuteilung von Aufgaben zwischen mehreren Threads, und jeder Thread hat seinen eigenen speziellen Prozessor. Asynchrone Verarbeitungsaufgaben, während sich Threads auf Arbeitsthreads für diese Aufgaben konzentrieren.
Aktivitäten: Asynchrones Frühstück
Stellen Sie sich vor, Frühstück zu machen:
Synchron: Zuerst die Eier braten und dann das Brot backen.
Asynchrone Einzelfaden:Frittierten Eier starten und den Timer einstellen. Backen Sie Brot und stellen Sie den Timer ein. Reinigen Sie während des Kochens die Küche. Nach dem Timer die Glocke klingeln, das Essen entfernen und aus dem Feuer essen.
Verbessern Sie das Verständnis des Workflows
Der Schlüssel zu diesem Arbeitsprozess besteht darin, die Art und Weise zu verstehen, wie "warten":
im Wesentlichen ermöglicht die asynchrone Programmierung Sie gleichzeitig Aufgaben aus, ohne zusätzliche Threads zu blockieren oder zu erstellen. Es ist ein leistungsstarkes Tool zur Optimierung der Leistung und zur Aufrechterhaltung der Reaktionsfähigkeit.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen asynchroner Programmierung und Multithreading?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!