Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengehadkan Keselarian secara Selari.ForEach?
Mengawal konkurensi secara Parallel.ForEach
Dalam pengaturcaraan selari, ia boleh memberi manfaat untuk menjalankan gelung secara selari, membolehkan berbilang utas melaksanakan tugas bebas secara serentak. Walau bagaimanapun, apabila berurusan dengan sumber yang terhad, adalah penting untuk mengehadkan bilangan tugas selari untuk mengelakkan beban berlebihan sistem. Artikel ini menunjukkan cara mengehadkan keselarian dalam gelung Parallel.ForEach.
Pertimbangkan situasi di mana anda mempunyai gelung Parallel.ForEach memuat turun halaman web. Untuk memastikan lebar jalur anda tidak terbeban, anda perlu mengehadkan bilangan muat turun serentak. Penyelesaian merangkak web tradisional tidak mencukupi kerana tugas anda mungkin melibatkan pelbagai jenis operasi.
Hadkan keselarian
Untuk mengawal bilangan utas yang digunakan dalam gelung Parallel.ForEach, anda boleh menggunakan parameter MaxDegreeOfParallelism kelas ParallelOptions. Parameter ini menentukan bilangan maksimum benang yang boleh melaksanakan gelung secara selari.
<code class="language-csharp">Parallel.ForEach( listOfWebpages, new ParallelOptions { MaxDegreeOfParallelism = 4 }, webpage => { Download(webpage); } );</code>
Dalam contoh ini, MaxDegreeOfParallelism ditetapkan kepada 4, yang bermaksud bahawa sehingga empat urutan akan digunakan untuk memuat turun halaman web secara serentak. Ini memastikan jalur lebar anda tidak melebihi had dan menghalang tekanan yang tidak wajar pada sumber.
Lebih banyak sumber
Untuk mendapatkan maklumat lanjut tentang Parallel.ForEach, lihat dokumentasi MSDN:
Dengan mengawal tahap selari dalam gelung Parallel.ForEach, anda boleh mengurus penggunaan sumber dengan berkesan dan memastikan prestasi optimum untuk aplikasi anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengehadkan Keselarian secara Selari.ForEach?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!