Maison >développement back-end >C++ >Comment puis-je contrôler le parallélisme dans Parallel.ForEach() pour gérer les ressources système ?

Comment puis-je contrôler le parallélisme dans Parallel.ForEach() pour gérer les ressources système ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-09 14:17:40413parcourir

How Can I Control Parallelism in Parallel.ForEach() to Manage System Resources?

Optimisation de Parallel.ForEach() pour la gestion des ressources

Défi :

Comment pouvons-nous gérer efficacement les ressources système, en particulier la bande passante, lorsque nous utilisons Parallel.ForEach() pour traiter plusieurs éléments simultanément ? Un parallélisme incontrôlé peut conduire à l'épuisement des ressources.

Solution :

La classe ParallelOptions offre un mécanisme puissant pour contrôler le niveau de parallélisme au sein d'une boucle Parallel.ForEach(). La clé est la propriété MaxDegreeOfParallelism. En définissant cette propriété, vous limitez le nombre maximum de tâches exécutées simultanément.

Exemple :

<code class="language-csharp">Parallel.ForEach(
    listOfWebpages,
    new ParallelOptions { MaxDegreeOfParallelism = 4 },
    webpage => { Download(webpage); }
);</code>

Dans cet exemple, MaxDegreeOfParallelism = 4 garantit qu'un maximum de quatre téléchargements se produisent simultanément, évitant ainsi que le système ne soit submergé. Ajustez cette valeur en fonction des capacités de votre système et de la nature des tâches.

Lectures complémentaires :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn