Delen via


Gelijktijdigheidsruntime

Met de Gelijktijdigheidsruntime voor C++ kunt u robuuste, schaalbare en responsieve parallelle toepassingen schrijven. Het verhoogt het abstractieniveau, zodat u de infrastructuurdetails die betrekking hebben op gelijktijdigheid niet hoeft te beheren. U kunt het ook gebruiken om planningsbeleid op te geven dat voldoet aan de servicevereisten van uw toepassingen. Gebruik deze bronnen zodat u kunt beginnen met werken met de Concurrency Runtime.

Zie Naslaginformatie voor referentiedocumentatie.

Aanbeveling

De Gelijktijdigheidsruntime is sterk afhankelijk van C++11-functies en neemt de modernere C++-stijl aan. Lees Welkom terug naar C++voor meer informatie.

Gelijktijdigheidsruntime-functies kiezen

Artikel Beschrijving
Overzicht Leert waarom de Gelijktijdigheidsruntime belangrijk is en beschrijft de belangrijkste functies.
Vergelijking met andere gelijktijdigheidsmodellen Hier ziet u hoe concurrency Runtime zich verhoudt tot andere gelijktijdigheidsmodellen, zoals de Windows-threadgroep en OpenMP, zodat u het gelijktijdigheidsmodel kunt gebruiken dat het beste past bij uw toepassingsvereisten.
Migreren van OpenMP naar de Gelijktijdigheidsruntime Vergelijkt OpenMP met de Gelijktijdigheidsruntime en biedt voorbeelden van het migreren van bestaande OpenMP-code om de Gelijktijdigheidsruntime te gebruiken.
Bibliotheek met parallelle patronen (PPL) Maakt u kennis met PPL, die parallelle lussen, taken en parallelle containers biedt.
Bibliotheek met asynchrone agents Introduceert u hoe u asynchrone agents en berichten kunt gebruiken om eenvoudig gegevensstroom- en pipeliningtaken in uw toepassingen te integreren.
Taakplanner Hiermee maakt u kennis met de Task Scheduler, waarmee u de prestaties van uw desktop-apps kunt verfijnen die gebruikmaken van de Gelijktijdigheidsruntime.

Taakparallellisme in de PPL

Artikel Beschrijving
Parallelle uitvoering van taken

Procedure: parallel_invoke gebruiken om een parallelle sorteerroutine te schrijven

Procedure: parallel_invoke gebruiken om parallelle bewerkingen uit te voeren

Procedure: Een taak maken die na een vertraging wordt voltooid
Beschrijft taken en taakgroepen, waarmee u asynchrone code kunt schrijven en parallel werk in kleinere delen kunt opdelen.
Stapsgewijze handleiding: Futures implementeren Demonstreert hoe u de functies van Concurrency Runtime combineert om meer te bereiken.
Doorloop: Werk verwijderen uit een User-Interface thread Laat zien hoe u het werk dat wordt uitgevoerd door de UI-draad in een MFC-toepassing naar een worker thread verplaatst.
Aanbevolen procedures in de Parallelle Patronen Bibliotheek

Algemene aanbevolen procedures in de Gelijktijdigheidsruntime
Biedt tips en aanbevolen procedures voor het werken met de PPL.

Gegevensparallellisme in de PPL

Artikel Beschrijving
Parallelle algoritmen

Procedure: Een parallel_for-lus schrijven

Procedure: Een parallel_for_each-lus schrijven

Hoe kaart- en reduceerbewerkingen parallel uitvoeren
Beschrijft parallel_for, parallel_for_eachen parallel_invokeandere parallelle algoritmen. Gebruik parallelle algoritmen om parallelle problemen met gegevens op te lossen die betrekking hebben op verzamelingen gegevens.
parallelle containers en objecten

Procedure: Parallelle containers gebruiken om de efficiëntie te verhogen

Procedure: Combineerbaar gebruiken om de prestaties te verbeteren

Hoe: Combinerend gebruiken om sets te combineren
Beschrijft de combinable klasse, evenals concurrent_vector, concurrent_queueen concurrent_unordered_mapandere parallelle containers. Gebruik parallelle containers en objecten wanneer u containers nodig hebt die thread-veilige toegang tot hun elementen bieden.
Aanbevolen procedures in de Parallelle Patronen Bibliotheek

Algemene aanbevolen procedures in de Gelijktijdigheidsruntime
Biedt tips en aanbevolen procedures voor het werken met de PPL.

Annuleren van taken en parallelle algoritmen

Artikel Beschrijving
Annulering in de PPL Beschrijft de rol van annulering in de PPL, waaronder het initiëren en reageren op annuleringsaanvragen.
Procedure: Annulering gebruiken om een parallelle lus te verbreken

Procedure: Uitzonderingsafhandeling gebruiken om te breken van een parallelle lus
Demonstreert twee manieren om gegevensparallel werk te annuleren.

Apps voor het Universal Windows Platform

Artikel Beschrijving
Asynchrone bewerkingen maken in C++ voor UWP-apps Hierin worden enkele van de belangrijkste punten beschreven die u moet onthouden wanneer u de Gelijktijdigheidsruntime gebruikt om asynchrone bewerkingen te produceren in een UWP-app.
Overzicht: verbinding maken met behulp van taken en XML HTTP-aanvragen Laat zien hoe u PPL-taken combineert met de IXMLHTTPRequest2 en IXMLHTTPRequest2Callback interfaces om HTTP GET- en POST-aanvragen naar een webservice in een UWP-app te verzenden.
Voorbeelden van Windows Runtime-apps Bevat downloadbare codevoorbeelden en demo-apps voor Windows Runtime.

Gegevensstroomprogrammering in de bibliotheek met Asynchrone agents

Artikel Beschrijving
Asynchrone agenten

Asynchrone berichtblokken

Functies voor het doorgeven van berichten

Procedure: Verschillende Producer-Consumer patronen implementeren

Procedure: Werkfuncties leveren aan de aanroep- en transformatorklassen

Handleiding: Een transformer gebruiken in een gegevenspijplijn

Procedure: Selecteren tussen voltooide taken

Procedure: Een bericht verzenden met een normaal interval

Procedure: Een berichtblokfilter gebruiken
Beschrijft asynchrone agents, berichtblokken en berichtdoorgiftefuncties. Dit zijn de bouwstenen voor het uitvoeren van gegevensstroombewerkingen in de Gelijktijdigheidsruntime.
Overzicht: Een Agent-Based-toepassing maken

Overzicht: Een gegevensstroomagent maken
Laat zien hoe u eenvoudige op agents gebaseerde toepassingen maakt.
Overzicht: Een Image-Processing-netwerk maken Laat zien hoe u een netwerk maakt van asynchrone berichtblokken die afbeeldingsverwerking uitvoeren.
Handleiding: Join gebruiken om deadlock te voorkomen Gebruikt het probleem met de eetfilosofen om te illustreren hoe u de Gelijktijdigheidsruntime gebruikt om impasses in uw toepassing te voorkomen.
Overzicht: Een aangepast berichtblok maken Laat zien hoe u een aangepast berichtbloktype maakt waarmee binnenkomende berichten op prioriteit worden besteld.
Aanbevolen procedures in de bibliotheek met Asynchrone agents

Algemene aanbevolen procedures in de Gelijktijdigheidsruntime
Biedt tips en aanbevolen procedures voor het werken met agents.

Afhandeling en foutopsporing van uitzonderingen

Artikel Beschrijving
afhandeling van uitzonderingen Hierin wordt beschreven hoe te werken met uitzonderingen in de Concurrency Runtime.
Parallelle diagnostische hulpprogramma's U leert hoe u uw toepassingen nauwkeurig kunt afstemmen en hoe u de gelijktijdigheidsruntime het meest effectief kunt gebruiken.

Prestatiesoptimalisatie afstemmen

Artikel Beschrijving
Parallelle diagnostische hulpprogramma's U leert hoe u uw toepassingen nauwkeurig kunt afstemmen en hoe u de gelijktijdigheidsruntime het meest effectief kunt gebruiken.
Schedulerinstanties

Stappenplan: Een Scheduler-exemplaar beheren

Scheduler-beleid

Procedure: Specifieke scheduler-beleidsregels opgeven

Procedure: Agents maken die gebruikmaken van specifiek scheduler-beleid
Laat zien hoe u kunt werken met en beheren van scheduler-exemplaren en scheduler-beleid. Voor desktop-apps kunt u met scheduler-beleid specifieke regels koppelen aan specifieke typen workloads. U kunt bijvoorbeeld één scheduler-exemplaar maken om bepaalde taken uit te voeren met een verhoogde threadprioriteit en de standaardplanner gebruiken om andere taken uit te voeren op de normale threadprioriteit.
Groepen plannen

Procedure: Planningsgroepen gebruiken om de volgorde van uitvoering te beïnvloeden
Demonstreert hoe u planningsgroepen gebruikt om gerelateerde taken samen te affinitiseren of groeperen. U hebt bijvoorbeeld een hoge mate van lokaliteit tussen gerelateerde taken nodig wanneer deze taken profiteren van het uitvoeren op hetzelfde processorknooppunt.
Lichtgewicht taken Hierin wordt uitgelegd hoe lichtgewicht taken nuttig zijn voor het maken van werk waarvoor geen taakverdeling of annulering is vereist en hoe ze ook handig zijn voor het aanpassen van bestaande code voor gebruik met de Gelijktijdigheidsruntime.
Contexten

Procedure: De contextklasse gebruiken om een coöperatieve semafore te implementeren

Hoe te: Oversubscription gebruiken om latentie te compenseren
Hierin wordt beschreven hoe u het gedrag bepaalt van de threads die worden beheerd door de Gelijktijdigheidsruntime.
geheugenbeheerfuncties

Hoe te: Alloc en Free gebruiken om de geheugenprestaties te verbeteren
Beschrijft de geheugenbeheerfuncties die de Gelijktijdigheidsruntime biedt om u te helpen bij het toewijzen en vrijmaken van geheugen op een gelijktijdige manier.

Aanvullende informatiebronnen

Artikel Beschrijving
Asynchrone programmeerpatronen en tips in Hilo (Windows Store-apps met C++ en XAML) Meer informatie over hoe we gelijktijdigheidsruntime hebben gebruikt voor het implementeren van asynchrone bewerkingen in Hilo, een Windows Runtime-app met behulp van C++ en XAML.
Parallel programmeren in systeemeigen codeblog Bevat aanvullende uitgebreide blogartikelen over parallelle programmering in de Gelijktijdigheidsruntime.
Parallel computing in C++ en systeemeigen codeforum Hiermee kunt u deelnemen aan community-discussies over de runtime voor gelijktijdigheid.
Parallel programmeren U leert over het parallelle programmeermodel dat beschikbaar is in .NET Framework.

Zie ook

Verwijzing