Heim >Backend-Entwicklung >C++ >Wie verbessert Async-Acait die Reaktionsfähigkeit der App, ohne zusätzliche Threads zu verwenden?
Im Gegensatz zu häufigen Missverständnissen erstellt async/await keine neuen Threads. Stattdessen wird kooperatives Multitasking eingesetzt, um die Reaktionsfähigkeit der Anwendung erheblich zu verbessern.
So funktioniert Async/Await
Der Compiler unterteilt Methoden, die async/await verwenden, geschickt in zwei Abschnitte:
await
, einschließlich der Initiierung asynchroner Vorgänge.await
.Ausführungssequenz:
await
-Anweisung trifft. Die asynchrone Operation (z. B. GetSomethingAsync()
) wird aufgerufen. Dieser Vorgang gibt ein ausstehendes Ergebnis zurück (wie ein Task
).SynchronizationContext
wird informiert, um den Abschluss des asynchronen Vorgangs zu signalisieren. Die Kontrolle kehrt zur Nachrichtenschleife zurück und ermöglicht ihr die Verarbeitung anderer Aufgaben.SynchronizationContext
eine Benachrichtigung.SynchronizationContext
fügt eine Nachricht zur Nachrichtenschleifenwarteschlange hinzu und löst die Ausführung von Teil 2 aus. Die Nachrichtenschleife verarbeitet dies und startet die Methode ab dem Punkt nach dem await
neu. Verbesserte Reaktionsfähigkeit
Während der asynchrone Vorgang aussteht, bleibt die Nachrichtenschleife frei, um Benutzereingaben und UI-Updates zu verarbeiten, sodass die Anwendung reaktionsfähig bleibt. Nach Abschluss aktualisiert Teil 2 den Anwendungsstatus.
Wichtige Überlegungen:
SynchronizationContext
, nicht Thread-Erstellung.Das obige ist der detaillierte Inhalt vonWie verbessert Async-Acait die Reaktionsfähigkeit der App, ohne zusätzliche Threads zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!