Freigeben über


Taskplaner (Concurrency Runtime)

Die Themen in diesem Abschnitt der Dokumentation werden die wichtigen Funktionen des Concurrency Runtime-Taskplaners. Der Taskplaner ist hilfreich, wenn Sie die Leistung des vorhandenen Codes optimieren möchten, der die Concurrency Runtime verwendet.

Wichtig

Der Taskplaner ist nicht von einer Windows Store-App verfügbar.Weitere Informationen finden Sie unter Erstellen von asynchronen Vorgängen in C++ für Windows Store-Apps.

Tipp

Die Concurrency Runtime stellt einen Standardplaner bereit. Es ist daher nicht erforderlich, einen Planer in der Anwendung zu erstellen.Der Taskplaner ermöglicht eine genauere Steuerung der Leistung von Anwendungen. Aus diesem Grund wird empfohlen, mit der Parallel Patterns Library (PPL) oder der Asynchronous Agents Library zu beginnen, wenn Sie noch nicht mit der Concurrency Runtime vertraut sind.

Der Taskplaner plant und koordiniert Aufgaben zur Laufzeit. Eine Aufgabe ist eine Arbeitseinheit, die einen bestimmten Auftrag ausführt. Eine Aufgabe kann i. d. R. parallel mit anderen Aufgaben ausgeführt werden. Aufgaben sind beispielsweise die von Aufgabengruppenelementen, parallelen Algorithmen und asynchronen Agents ausgeführten Arbeitsschritte.

Der Taskplaner dient zur Verwaltung der Details im Zusammenhang mit der effizienten Aufgabenplanung auf Computern mit mehreren Computerressourcen. Der Taskplaner verwendet außerdem die neuesten Funktionen des zugrunde liegenden Betriebssystems. Daher werden Anwendungen, die die Concurrency Runtime verwenden, auf Hardware mit erweiterten Funktionen automatisch skaliert und optimiert.

Concurrency Runtime im Vergleich zu anderen Parallelitätsmodellen beschreibt die Unterschiede zwischen präemptiven und kooperativen Planungsmechanismen. Der Taskplaner verwendet kooperative Planung und einen Arbeitsübernahme-Algorithmus zusammen mit dem präemptiven Planer des Betriebssystems, um eine maximale Auslastung der Verarbeitungsressourcen zu erzielen.

Die Concurrency Runtime stellt einen Standardplaner bereit, sodass Sie keine Infrastrukturdetails verwalten müssen. Daher verwenden Sie den Taskplaner i. d. R. nicht direkt. Um die Qualitätsanforderungen Ihrer Anwendung zu erfüllen, können Sie jedoch mit dem Taskplaner eigene Planungsrichtlinien bereitstellen oder Planer bestimmten Aufgaben zuordnen. Nehmen Sie als Beispiel eine parallele Sortierungsroutine mit einer Skalierung von bis zur vier Prozessoren. Sie können mit Planerrichtlinien einen Planer erstellen, der bis zu vier gleichzeitige Aufgaben generiert. Wenn Sie die Sortierungsroutine mit diesem Planer ausführen, können andere aktive Planer die restlichen Verarbeitungsressourcen nutzen.

Verwandte Themen

Titel

Beschreibung

Planerinstanzen

Beschreibt Planerinstanzen und die Verwendung der concurrency::CurrentScheduler-Klasse und der concurrency::Scheduler-Klasse für ihre Verwaltung. Verwenden Sie Planerinstanzen, wenn Sie bestimmten Arten von Arbeitslasten explizite Planungsrichtlinien zuordnen möchten.

Planerrichtlinien

Beschreibt die Rolle von Planerrichtlinien. Verwenden Sie Planerrichtlinien, wenn Sie die Strategie steuern möchten, die der Planer zum Verwalten von Aufgaben verwendet.

Planungsgruppen

Beschreibt die Rolle von Planungsgruppen. Mithilfe von Planungsgruppen können Sie die Fragmentierung von Aufgaben verhindern, beispielsweise damit eine Gruppe verwandter Aufgaben von der Ausführung auf dem gleichen Prozessorknoten profitiert.

Einfache Aufgaben

Beschreibt die Rolle von einfachen Aufgaben. Einfache Aufgaben sind nützlich, wenn Sie vorhandenen Code anpassen, um die Planungsfunktionalität der Concurrency Runtime zu verwenden.

Kontexte

Beschreibt die Rolle von Kontexten, der concurrency::wait-Funktion und der concurrency::Context-Klasse. Mit dieser Funktion können Sie steuern, wann Kontexte blockiert werden, wann die Blockierung aufgehoben wird und wann Kontexte zurückgehalten werden, oder verwenden Sie diese Funktion, um Überzeichnung in der Anwendung zu aktivieren.

Speicherverwaltungsfunktionen

Beschreibt die concurrency::Free-Funktion und die concurrency::Alloc-Funktion. Diese Funktionen können die Arbeitsspeicherleistung erhöhen, indem die Belegung und Freigabe von Arbeitsspeicher gleichzeitig erfolgt.

Concurrency Runtime im Vergleich zu anderen Parallelitätsmodellen

Beschreibt die Unterschiede zwischen präemptiven und kooperativen Planungsmechanismen.

Parallel Patterns Library (PPL)

Beschreibt, wie verschiedene parallele Muster in Anwendungen verwendet werden, z. B. parallele Algorithmen.

Asynchronous Agents Library

Beschreibt, wie asynchrone Agents in Anwendungen verwendet werden.

Concurrency Runtime

Beschreibt die Concurrency Runtime, die die parallele Programmierung vereinfacht, und stellt Links zu verwandten Themen bereit.