Share via


Concurrency Runtime

Die Concurrency Runtime für C++-Hilfen Schreiben robuster, skalierbarer und reaktionsschneller paralleler Anwendungen.Es stellt eine höhere Abstraktionsebene bereit, sodass Sie die Infrastrukturdetails im Zusammenhang mit der Parallelität nicht verwalten müssen.Sie können mit ihm außerdem Planungsrichtlinien angeben, die den Servicequalitätsforderungen Ihrer Anwendungen entsprechen.Verwenden Sie diese Ressourcen, die Sie bei den ersten Schritten mit der Concurrency Runtime.

Die Referenzdokumentation finden Sie unter Referenz (Concurrency Runtime).

TippTipp

Die Concurrency Runtime beruht stark von Funktionen C++11 und nimmt das modernere C++-Format an.Weitere erfahren, Lesen Willkommen zurück in C++ modernes (C++).

Auswählen von Concurrency Runtime-Funktionen

Übersicht über die Concurrency Runtime

Erläutert die Bedeutung der Concurrency Runtime und beschreibt ihre wichtigsten Funktionen.

Concurrency Runtime im Vergleich zu anderen Parallelitätsmodellen

Beschreibt die Concurrency Runtime im Vergleich mit anderen Parallelitätsmodellen, z. B. dem Windows-Threadpool und OpenMP, damit Sie das Parallelitätsmodell verwenden können, das die Anforderungen Ihrer Anwendungen am besten erfüllt.

Migrieren von OpenMP zur Concurrency Runtime

Vergleicht OpenMP zur Concurrency Runtime und stellt Beispiele dazu, wie Sie von vorhandenem OpenMP-Code zur Concurrency Runtime, um die Concurrency Runtime zu verwenden.

Parallel Patterns Library (PPL)

Stellt Sie zum PPL vor, das parallele Schleifen, Aufgaben und parallele Container bereitstellt.

Asynchronous Agents Library

Stellt Sie zu vor, wie asynchrone Agents und asynchroner Nachrichtenübergabe, um des Datenflusses und des Pipelinefunktionen problemlos enthalten weist in Anwendungen eine Arbeit zu.

Taskplaner (Concurrency Runtime)

Stellt Sie an den Taskplaner abgetreten vor, der es Ihnen ermöglicht, die Leistung der Desktop-Apps abzurufen, die die Concurrency Runtime verwendet.

Aufgabenparallelismus in der PPL

Aufgabenparallelität (Concurrency Runtime)

Gewusst wie: Verwenden von parallel_invoke zum Schreiben einer Runtime für paralleles Sortieren

Gewusst wie: Ausführen von parallelen Vorgängen mithilfe von parallel_invoke

Gewusst wie: Erstellen einer Aufgabe, die nach einer Verzögerung abgeschlossen wird

Beschreibt Aufgaben und Aufgabengruppen, die Ihnen helfen können, asynchronen Code zu schreiben und parallele Arbeit in kleinere Stücke zu zerlegen.

Exemplarische Vorgehensweise: Implementieren von Futures

Veranschaulicht, wie Concurrency Runtime-Funktionen kombiniert, um etwas mehr durchzuführen.

Exemplarische Vorgehensweise: Entfernen von Arbeit aus einem Benutzeroberflächenthread

Zeigt, wie die Arbeit bewegt, die vom UI-Thread in einer MFC-Anwendung zu einem Arbeitsthread ausgeführt wird.

Empfohlene Vorgehensweisen in der Parallel Patterns Library

Allgemein empfohlene Vorgehensweisen in der Concurrency Runtime

Enthält Tipps und bewährte Methoden für das Arbeiten mit dem PPL.

Daten-Parallelität in der PPL

Parallele Algorithmen

Gewusst wie: Schreiben einer parallel_for-Schleife

Gewusst wie: Schreiben einer parallel_for_each-Schleife

Gewusst wie: Paralleles Ausführen von Zuordnungs- und Reduzierungsoperationen

Beschreibt parallel_for, parallel_for_each, parallel_invoke und andere parallele Algorithmen.Verwenden Sie parallele Algorithmen, um Probleme mit parallelen Daten zu beheben, die Auflistungen von Daten einschließen.

Parallele Container und Objekte

Gewusst wie: Erhöhen der Effizienz mithilfe von parallelen Containern

Gewusst wie: Verbessern der Leistung mithilfe von combinable

Gewusst wie: Kombinieren von Gruppen mithilfe von combinable

Beschreibt die combinable-Klasse sowie concurrent_vector, concurrent_queue, concurrent_unordered_map und andere parallele Container.Verwenden Sie parallele Container und Objekte, wenn Sie Container benötigen, die threadsicheren Zugriff auf ihre Elemente bieten.

Empfohlene Vorgehensweisen in der Parallel Patterns Library

Allgemein empfohlene Vorgehensweisen in der Concurrency Runtime

Enthält Tipps und bewährte Methoden für das Arbeiten mit dem PPL.

Abbrechen von Aufgaben und der parallelen Algorithmen

Abbruch in der PPL

Beschreibt die Rolle des Abbruchs in der PPL und enthält, wie auf Abbruchanforderungen initiiert und reagiert.

Gewusst wie: Verwenden eines Abbruchs zum Verlassen einer Parallel-Schleife

Gewusst wie: Verwenden der Ausnahmebehandlung zum Verlassen einer Parallel-Schleife

Veranschaulicht zwei Möglichkeiten, Daten-parallele Arbeitsvorgänge abzubrechen.

Windows Store-Apps

Erstellen von asynchronen Vorgängen in C++ für Windows Store-Apps

Beschreibt einige der Punkte, um zu sehen, wenn Sie die Concurrency Runtime verwenden, um asynchrone Vorgänge in einer Windows Store-App zu erzeugen.

Exemplarische Vorgehensweise: Verbinden von Verwendungsaufgaben und XML-HTTP-Anforderung (IXHR2)

Zeigt, wie PPL-Aufgaben mit den IXMLHTTPRequest2 und IXMLHTTPRequest2Callback-Schnittstellen kombiniert, HTTP-GET- und POST-Anforderungen zu einem Webdienst in einer Windows Store-App zu senden.

Windows Store-App-Beispiele

Enthält herunterladbare Codebeispiele und Demo-Apps für Windows 8.Die C++-Beispiele verwenden Concurrency Runtime-Funktionen wie PPL-Aufgaben, Daten im Hintergrund zu verarbeiten, um UX reaktionsfähig bleiben.

Datenfluss-Programmierung in der Asynchronous Agents Library

Asynchrone Agents

Asynchrone Nachrichtenblöcke

Funktionen zum Übergeben von Meldungen

Gewusst wie: Implementieren verschiedener Producer-Consumer-Muster

Gewusst wie: Bereitstellen von Arbeitsfunktionen für die call- und transformer-Klassen

Gewusst wie: Verwenden von transformer in einer Datenpipeline

Gewusst wie: Auswählen von abgeschlossenen Aufgaben

Gewusst wie: Senden einer Nachricht in regelmäßigen Intervallen

Gewusst wie: Verwenden eines Nachrichtenblockfilters

Beschreibt asynchrone Agents, Meldungsblöcke und Meldungsübergabefunktionen, die die Bausteine zum Ausführen von Datenflussvorgängen in der Concurrency Runtime sind.

Exemplarische Vorgehensweise: Erstellen einer agentbasierten Anwendung

Exemplarische Vorgehensweise: Erstellen eines Datenfluss-Agent

Zeigt, wie grundlegende agentbasierte Anwendungen erstellt.

Exemplarische Vorgehensweise: Erstellen eines Bildverarbeitungsnetzwerks

Zeigt, wie ein Netzwerk von asynchronen Nachrichtenblöcken erstellt, die Bildverarbeitung.

Exemplarische Vorgehensweise: Verhindern von Deadlocks mit join

Verwendet das Philosophenproblems, um zu veranschaulichen, wie die Concurrency Runtime verwendet, um Deadlocks in der Anwendung verhindern.

Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Nachrichtenblocks

Zeigt, wie ein benutzerdefinierter Nachrichtenblocktyp erstellt wird, um eingehende Nachrichten nach Priorität zu.

Empfohlene Vorgehensweisen in der Asynchronous Agents Library

Allgemein empfohlene Vorgehensweisen in der Concurrency Runtime

Enthält Tipps und bewährte Methoden für das Arbeiten mit Agents.

Ausnahmebehandlung und Debuggen

Ausnahmebehandlung in der Concurrency Runtime

Beschreibt, wie mit Ausnahmen in der Concurrency Runtime funktioniert.

Diagnosetools für die parallele Ausführung (Concurrency Runtime)

Erläutert, wie Sie die Feinabstimmung von Anwendungen ausführen und die Concurrency Runtime so effizient wie möglich nutzen.

Optimierungs-Leistung

Diagnosetools für die parallele Ausführung (Concurrency Runtime)

Erläutert, wie Sie die Feinabstimmung von Anwendungen ausführen und die Concurrency Runtime so effizient wie möglich nutzen.

Planerinstanzen

Gewusst wie: Verwalten einer Planerinstanz

Planerrichtlinien

Gewusst wie: Angeben von bestimmten Planerrichtlinien

Gewusst wie: Erstellen von Agents, die bestimmte Planerrichtlinien verwenden

Zeigt, wie mit verwalten Planerinstanzen und Planerrichtlinien funktioniert.Für Desktop-Apps aktivieren Sie Planerrichtlinien, um bestimmte Regeln mit bestimmten Arten von Arbeitslasten zuordnen.Beispielsweise können Sie eine Planerinstanz erstellen, um einige Aufgaben mit höherer Threadpriorität auszuführen und andere Aufgaben mit dem Standardplaner mit normaler Threadpriorität auszuführen.

Planungsgruppen

Gewusst wie: Beeinflussen der Ausführungsreihenfolge mithilfe von Zeitplangruppen

Veranschaulicht, wie Planungsgruppen zusammen verwendet, um affinitize oder Gruppe, verwandte Aufgaben.Beispielsweise benötigen Sie möglicherweise ein hohes Maß an der Stelle mit verwandten Aufgaben, wenn diese Aufgaben von der Ausführung auf dem gleichen Prozessorknoten profitiert.

Einfache Aufgaben

Erläutert, wie einfache Aufgaben für das Erstellen der Arbeit hilfreich sind, die nicht Lastenausgleich oder Abbruch erfordert, und wie diese auch für die Anpassung des vorhandenen Codes zur Verwendung mit der Concurrency Runtime nützlich sind.

Kontexte

Gewusst wie: Implementieren einer kooperativen Semaphore mithilfe der Context-Klasse

Gewusst wie: Verwenden der Überzeichnung zum Kompensieren der Latenz

Beschreibt, wie das Verhalten der Threads gesteuert werden, die von der Concurrency Runtime verwaltet werden.

Speicherverwaltungsfunktionen

Gewusst wie: Verbessern der Arbeitsspeicherleistung mithilfe von Alloc und Free

Beschreibt die Speicherverwaltungsfunktionen, die die Concurrency Runtime bereitstellt, die Ihnen helfen, Speicher in einer gleichzeitigen Art reserviert und freigegeben.

Zusätzliche Ressourcen

Asynchrone Programmierung Muster und Tipps in Hilo (Windows Store-Apps mithilfe von C++ und XAML)

Erfahren Sie, wie Sie die Concurrency Runtime verwenden, um asynchrone Vorgänge in Hilo, eine Windows Store-App mithilfe von C++ und XAML zu implementieren.

Codebeispiele für die Concurrency Runtime- und Ähnlichkeits-Muster-Bibliothek in Visual Studio 2010

Stellt Beispielanwendungen und Hilfsprogramme bereit, die die Concurrency Runtime zeigen.

Parallele Programmierung in systemeigenem Code (Blog)

Bietet zusätzliche ausführliche Blogartikel zur parallelen Programmierung in der Concurrency Runtime.

Parallele Computervorgänge in C++ und systemeigenem Code (Forum)

Ermöglicht Ihnen die Teilnahme an Communitydiskussionen über die Concurrency Runtime.

Parallele Programmierung in .NET Framework

Erläutert das Modell der parallelen Programmierung, das in .NET Framework verfügbar ist.

Siehe auch

Weitere Ressourcen

Referenz (Concurrency Runtime)