Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengehadkan Keselarian dalam Parallel.ForEach() untuk Operasi Terdikit?

Bagaimana untuk Mengehadkan Keselarian dalam Parallel.ForEach() untuk Operasi Terdikit?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-09 14:32:48990semak imbas

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

Menguruskan Tugasan Serentak secara Selari.ForEach() dengan Kekangan Sumber

Apabila bekerja dengan gelung selari di mana operasi individu tertakluk kepada pengehadan sumber (seperti lebar jalur rangkaian atau had kadar API), mengawal tahap keselarasan adalah penting. Kaedah Parallel.ForEach(), bersama dengan kelas ParallelOptions, menawarkan penyelesaian yang mudah.

Kelas ParallelOptions menyediakan sifat MaxDegreeOfParallelism, yang menetapkan bilangan maksimum urutan yang dibenarkan untuk dilaksanakan secara serentak. Ini secara berkesan mengehadkan bilangan operasi serentak, menghalang beban sumber yang berlebihan.

Pertimbangkan senario mengikis web di mana lebar jalur rangkaian mengehadkan muat turun serentak kepada, katakan, empat pada satu masa. Coretan kod berikut menunjukkan cara untuk menguatkuasakan pengehadan ini:

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

Menetapkan MaxDegreeOfParallelism kepada 4 memastikan bahawa maksimum empat utas memuat turun halaman web secara serentak, dengan itu menghormati kekangan lebar jalur.

Bacaan Selanjutnya:

Atas ialah kandungan terperinci Bagaimana untuk Mengehadkan Keselarian dalam Parallel.ForEach() untuk Operasi Terdikit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn