Parallel.ForEach에서 동시성 제어
병렬 프로그래밍에서는 여러 스레드가 동시에 독립적인 작업을 수행할 수 있도록 루프를 병렬로 실행하는 것이 유리할 수 있습니다. 그러나 제한된 리소스를 처리할 때는 시스템 과부하를 방지하기 위해 병렬 작업 수를 제한하는 것이 중요합니다. 이 문서에서는 Parallel.ForEach 루프에서 병렬 처리를 제한하는 방법을 보여줍니다.
Parallel.ForEach 루프가 웹 페이지를 다운로드하는 상황을 생각해 보세요. 대역폭이 과부하되지 않도록 하려면 동시 다운로드 수를 제한하는 것이 좋습니다. 작업에 다양한 유형의 작업이 포함될 수 있으므로 기존 웹 크롤링 솔루션으로는 충분하지 않습니다.
병렬성 제한
Parallel.ForEach 루프에 사용되는 스레드 수를 제어하려면 ParallelOptions 클래스의 MaxDegreeOfParallelism 매개 변수를 사용할 수 있습니다. 이 매개변수는 루프를 병렬로 실행할 수 있는 최대 스레드 수를 지정합니다.
Parallel.ForEach( listOfWebpages, new ParallelOptions { MaxDegreeOfParallelism = 4 }, webpage => { Download(webpage); } );
이 예에서 MaxDegreeOfParallelism은 4로 설정됩니다. 이는 웹 페이지를 동시에 다운로드하는 데 최대 4개의 스레드가 사용된다는 의미입니다. 이렇게 하면 대역폭이 한도를 초과하지 않고 리소스에 대한 과도한 부담을 방지할 수 있습니다.
더 많은 리소스
Parallel.ForEach에 대한 자세한 내용은 MSDN 설명서를 참조하세요.
Parallel.ForEach 루프에서 병렬 처리 수준을 제어하면 리소스 사용량을 효과적으로 관리하고 애플리케이션에 대한 최적의 성능을 보장할 수 있습니다.
위 내용은 Parallel.ForEach에서 병렬성을 제한하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!