리소스 제약 조건이 있는 Parallel.ForEach()에서 동시 작업 관리
개별 작업에 리소스 제한(예: 네트워크 대역폭 또는 API 속도 제한)이 적용되는 병렬 루프로 작업할 때 동시성 수준을 제어하는 것이 중요합니다. Parallel.ForEach()
클래스와 함께 ParallelOptions
메소드는 간단한 솔루션을 제공합니다.
ParallelOptions
클래스는 동시에 실행할 수 있는 최대 스레드 수를 설정하는 MaxDegreeOfParallelism
속성을 제공합니다. 이는 동시 작업 수를 효과적으로 제한하여 리소스 과부하를 방지합니다.
네트워크 대역폭이 동시 다운로드를 한 번에 4개로 제한하는 웹 스크래핑 시나리오를 생각해 보세요. 다음 코드 조각은 이 제한을 적용하는 방법을 보여줍니다.
<code class="language-csharp">Parallel.ForEach( listOfWebpages, new ParallelOptions { MaxDegreeOfParallelism = 4 }, webpage => { DownloadWebpage(webpage); } );</code>
MaxDegreeOfParallelism
을 4로 설정하면 최대 4개의 스레드가 웹페이지를 동시에 다운로드하므로 대역폭 제약이 준수됩니다.
추가 자료:
위 내용은 제한된 작업에 대해 Parallel.ForEach()에서 병렬성을 제한하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!