Heim > Backend-Entwicklung > C++ > Asynchrone Programmierung gegen Multithreading: Was ist der Unterschied?

Asynchrone Programmierung gegen Multithreading: Was ist der Unterschied?

DDD
Freigeben: 2025-01-28 15:51:10
Original
362 Leute haben es durchsucht

Asynchronous Programming vs. Multithreading: What's the Difference?

asynchrones Programmieren und Multi -Threading: Schlüsselunterschiede

asynchrone Programmierung und Multi -Threads sind oft verwirrt, aber sie sind völlig unterschiedliche Konzepte.

Asynchrones Programmieren

Der Kern der asynchronen Programmierung ist nicht -blockierender Operation

. Bei der Begegnung auf den Ausdruck "Warte" in der asynchronen Methode blockiert die Thread -Ausführung nicht, um die Aufgabe abzuschließen. Stattdessen wird der verbleibende Teil der Methode in eine Fortsetzung registriert und die Kontrolle des Kontrollrechts an den Anrufer der asynchronen Methode zahlt.

Es ist wichtig, dass die asynchrone Methode keine zusätzlichen Threads

erstellen muss. Da die asynchrone Methode im aktuellen Synchronisationskontext ausgeführt wird, wird während der Aktivität nur Thread -Zeit verwendet. "Task.run" kann die Dense -Arbeit von CPU in den Hintergrund -Thread deinstallieren. Dies ist jedoch ungültig, wenn nur das Ergebnis auf das Ergebnis wartet.

Multi -thread

Multi -Threads beinhaltet die Zuweisung von Aufgaben für mehrere Arbeitsfäden. Jeder Prozessor übernimmt die Zuordnungsaufgabe unabhängig. Koordinieren Sie diese Arbeitsfäden, um Ressourcenkonflikte zu verhindern und sicherzustellen, dass eine angemessene Vergütung die Komplexität erhöht. Eine einfache Metapher

Das Beispiel des Restaurants kann helfen, den Unterschied zwischen den beiden zu verstehen:

Synchron:

Zuerst die Eier braten und dann das Brot backen.

Single -Threading:
    gleichzeitig gebratene Eier und gegrilltes Brot starten und gleichzeitig andere Aufgaben ausführen. Wenn die Chronographenbenachrichtigung die Küche abschließt.
  • multi -threaded asynchron: verwendete zusätzliche Köche, um Eier und Brot unabhängig zuzubereiten.
  • Die Vorteile der asynchronen Programmierung
  • Wenn die Aufgabe der Prozessor nicht verbindet, ist der asynchrone Programmiervorteil offensichtlich. Es ist nicht erforderlich, für jede Aufgabe eine Workline zuzuweisen, sondern auch auf die verfügbaren Ergebnisse zu warten und in diesem Zeitraum andere Aktivitäten auszuführen. Jon Skeet Beispiel

Betrachten Sie das Beispiel von Jon Skeet:

beim Aufrufen von wird es einen asynchronen Betrieb auslösen, ohne den Anruf -Thread zu blockieren.

Registrieren Sie die verbleibende Methode als Fortsetzung und führen Sie aus, wenn die Länge der Website verfügbar ist. Beim Betrieb hier kann der Anrufer weiterhin andere Aufgaben ausführen.

Nach Abschluss wird die Ausführung fortgesetzt, und der Etikettentext wird mit der Länge der Website festgelegt.

<code class="language-c#">async void DisplayWebsiteLength ( object sender, EventArgs e )
{
    label.Text = "Fetching ...";
    using ( HttpClient client = new HttpClient() )
    {
        Task<string> task = client.GetStringAsync("http://csharpindepth.com");
        string text = await task;
        label.Text = text.Length.ToString();
    }
}</code>
Nach dem Login kopieren
    Kurz gesagt, die asynchrone Programmierung bietet eine Möglichkeit, Aufgaben ohne andere Betriebsfortschritt in einzelnen Threads auszuführen. Durch diese Methode kann die Codeeffizienz verbessert und die Ressourcennutzung verbessert werden.

Das obige ist der detaillierte Inhalt vonAsynchrone Programmierung gegen Multithreading: Was ist der Unterschied?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage