Concurrency Runtime
Le runtime d'accès concurrentiel pour C++ vous aide à écrire des applications parallèles fiables, évolutives et réactives. Il permet d'élever le niveau d'abstraction afin que vous n'ayez pas à gérer les détails de l'infrastructure liés à l'accès concurrentiel. Vous pouvez également l'utiliser pour spécifier les stratégies de planification qui répondent aux exigences de vos applications en matière de qualité de service. Utilisez ces ressources pour vous aider à vous familiariser avec le runtime d'accès concurrentiel.
Pour obtenir une documentation de référence, voir Référence (runtime d'accès concurrentiel).
Conseil
Le runtime d'accès concurrentiel s'appuie fortement sur les caractéristiques de C++11 et adopte le style plus moderne de C++.Pour en savoir plus, voir Bienvenue dans C++ (Modern C++).
Choisir les fonctionnalités du runtime d'accès concurrentiel
Explique pourquoi le runtime d'accès concurrentiel est important et décrit ses principales fonctionnalités. |
|
Comparaison du runtime d'accès concurrentiel aux autres modèles d'accès concurrentiel |
Montre la différence entre le runtime d'accès concurrentiel et d'autres modèles d'accès concurrentiel, tels que le pool de threads Windows et OpenMP, afin que vous puissiez utiliser le modèle d'accès concurrentiel le mieux adapté aux spécifications de votre application. |
Compare l'OpenMP au runtime d'accès concurrentiel et fournit des exemples sur la migration du code OpenMP existant pour utiliser le runtime d'accès concurrentiel. |
|
Présente la bibliothèque de modèles parallèles, laquelle fournit des boucles parallèles, tâches et conteneurs parallèles. |
|
Explique comment utiliser des agents asynchrones et le passage de messages pour intégrer facilement des tâches de flux de données et de traitement pipeline dans vos applications. |
|
Présente le Planificateur de tâches, lequel vous permet de réajuster le niveau de performance des applications de bureau utilisant le runtime d'accès concurrentiel. |
Parallélisme des tâches dans la bibliothèque PPL
Parallélisme des tâches (runtime d'accès concurrentiel) Comment : utiliser parallel_invoke pour écrire une routine de tri parallèle Comment : utiliser parallel_invoke pour exécuter des opérations parallèles Comment : créer une tâche qui se termine après un certain délai. |
Décrit les tâches et les groupes de tâches, qui peuvent vous aider à écrire du code asynchrone et à découper le travail parallèle en plus petits morceaux. |
Montre comment combiner les caractéristiques du runtime d'accès concurrentiel pour aller plus loin. |
|
Procédure pas à pas : suppression de travail d'un thread d'interface utilisateur |
Montre comment déplacer le travail qui est effectué par l'IU thread dans une application MFC sur un thread de travail. |
Meilleures pratiques de la Bibliothèque de modèles parallèles Meilleures pratiques en général du runtime d'accès concurrentiel |
Donne les astuces et meilleures pratiques pour utiliser la bibliothèque de modèles parallèles. |
Parallélisme des données dans la bibliothèque PPL
Comment : écrire une boucle parallel_for Comment : écrire une boucle parallel_for_each Comment : exécuter des opérations de mappage et de réduction en parallèle |
Décrit parallel_for, parallel_for_each, parallel_invoke et d'autres algorithmes parallèles. Utilisez des algorithmes parallèles pour résoudre les problèmes de données parallèles qui impliquent des collections de données. |
Conteneurs et objets parallèles Comment : utiliser des conteneurs parallèles pour une efficacité accrue Comment : utiliser la classe combinable pour améliorer les performances Comment : utiliser la classe combinable pour combiner des ensembles |
Décrit la classe combinable ainsi que concurrent_vector, concurrent_queue, concurrent_unordered_map et d'autres conteneurs parallèles. Utilisez des conteneurs et objets parallèles quand vous avez besoin de conteneurs qui fournissent un accès thread-safe à leurs éléments. |
Meilleures pratiques de la Bibliothèque de modèles parallèles Meilleures pratiques en général du runtime d'accès concurrentiel |
Donne les astuces et meilleures pratiques pour utiliser la bibliothèque de modèles parallèles. |
Annulation des tâches et des algorithmes parallèles
Décrit le rôle de l'annulation dans la bibliothèque de modèles parallèles, en particulier comment initier des demandes d'annulation et y répondre. |
|
Comment : utiliser l'annulation pour rompre une boucle parallèle Comment : utiliser la gestion des exceptions pour rompre une boucle parallèle |
Montre deux façons d'annuler du travail parallèle de données. |
Applications Windows Store
Création d'opérations asynchrones en C++ pour les applications Windows Store |
Décrit certains des principaux points à garder à l'esprit quand vous utilisez le runtime d'accès concurrentiel pour effectuer les opérations asynchrones dans une application Windows Store. |
Procédure pas à pas : connexion à l'aide de tâches et de requêtes HTTP XML |
Montre comment combiner les tâches de la bibliothèque de modèles parallèles avec les interfaces IXMLHTTPRequest2 et IXMLHTTPRequest2Callback pour envoyer des requêtes HTTP GET et POST à un service web dans une application Windows Store. |
Contient des exemples de code et des versions de démonstration d'applications téléchargeables pour Windows 8. Les exemples C++ utilisent les caractéristiques du runtime d'accès concurrentiel comme les tâches PPL pour traiter les données en arrière plan et garder l'UX réactive. |
Programmation de flux de données dans la bibliothèque des agents asynchrones
Gestion des exceptions et débogage
Gestion des exceptions dans le runtime d'accès concurrentiel |
Décrit comment travailler avec les exceptions du runtime d'accès concurrentiel. |
Outils de diagnostic parallèles (runtime d'accès concurrentiel) |
Explique comment affiner vos applications et tirer le meilleur parti du runtime d'accès concurrentiel. |
Réglage des performances
Outils de diagnostic parallèles (runtime d'accès concurrentiel) |
Explique comment affiner vos applications et tirer le meilleur parti du runtime d'accès concurrentiel. |
Comment : gérer une instance de planificateur Comment : spécifier des stratégies de planificateur Comment : créer des agents qui utilisent des stratégies de planificateur spécifiques |
Montre comment travailler avec la gestion d'instances et des politiques du planificateur. Pour les applications du bureau, les politiques du planificateur vous permettent d'associer des règles spécifiques à des types spécifiques de charge de travail. Par exemple, vous pouvez créer une instance du planificateur pour effectuer certaines tâches avec une priorité de thread élevée et utiliser le planificateur par défaut pour effectuer d'autres tâches avec une priorité de thread normale. |
Comment : utiliser des groupes de planifications pour influencer l'ordre d'exécution |
Montre comment utiliser les groupes de planification pour grouper par affinités ou par tâches connexes. Par exemple, vous pourriez avoir besoin d'un niveau élevé de localité pour les tâches connexes lorsque ces tâches tirent profit d'une exécution sur le même nœud du processeur. |
Explique comment les tâches légères sont utiles pour créer un travail qui ne requiert pas d'équilibrage de charge ni d'annulation, et à quel point elles sont aussi utiles pour adapter le code existant pour une utilisation avec le runtime d'accès concurrentiel. |
|
Comment : utiliser la classe Context pour implémenter un sémaphore coopératif Comment : utiliser le surabonnement pour compenser la latence |
Décrit comment contrôler le comportement des threads qui sont gérés par le runtime d'accès concurrentiel. |
Fonctions de gestion de la mémoire Comment : utiliser Alloc et Free pour améliorer les performances de la mémoire |
Décrit les fonctions de gestion de la mémoire que le runtime d'accès concurrentiel fournit pour vous aider à allouer et libérer de la mémoire de façon simultanée. |
Ressources supplémentaires
Découvrez comment nous avons utilisé le runtime d'accès concurrentiel pour implémenter des opérations asynchrones dans Hilo, une application Windows Store qui utilise C++ et XAML. |
|
Donne des exemples d'applications et d'utilitaires qui montrent le runtime d'accès concurrentiel. |
|
Fournit des articles de blog détaillés supplémentaires sur la programmation parallèle dans le runtime d'accès concurrentiel. |
|
Vous permet de participer à des discussions de la communauté sur le runtime d'accès concurrentiel. |
|
Explique le modèle de programmation parallèle qui est disponible dans le .NET Framework. |