Maison >développement back-end >C++ >Comment limiter le parallélisme dans Parallel.ForEach() pour les opérations limitées ?

Comment limiter le parallélisme dans Parallel.ForEach() pour les opérations limitées ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-09 14:32:48988parcourir

How to Limit Parallelism in Parallel.ForEach() for Throttled Operations?

Gestion des tâches simultanées dans Parallel.ForEach() avec des contraintes de ressources

Lorsque vous travaillez avec des boucles parallèles où les opérations individuelles sont soumises à des limitations de ressources (comme la bande passante du réseau ou les limites de débit de l'API), il est crucial de contrôler le niveau de concurrence. La méthode Parallel.ForEach(), en conjonction avec la classe ParallelOptions, offre une solution simple.

La classe ParallelOptions fournit la propriété MaxDegreeOfParallelism, qui définit le nombre maximum de threads autorisés à s'exécuter simultanément. Cela limite efficacement le nombre d'opérations simultanées, évitant ainsi la surcharge des ressources.

Considérez un scénario de web scraping dans lequel la bande passante du réseau limite les téléchargements simultanés à, disons, quatre à la fois. L'extrait de code suivant montre comment appliquer cette limitation :

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

Le réglage MaxDegreeOfParallelism sur 4 garantit qu'un maximum de quatre threads téléchargent des pages Web simultanément, respectant ainsi la contrainte de bande passante.

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