반응형
병렬을 제한하려면 어떻게 해야 합니까?각자?
평행선이 있어요.일부 웹 페이지를 다운로드하는 각() 비동기 루프의 경우.대역폭이 제한되어 있어 한 번에 x페이지만 다운로드할 수 있지만 병렬은 다운로드할 수 없습니다.각 사용자는 원하는 웹 페이지의 전체 목록을 실행합니다.
Parallel을 실행하는 동안 스레드 번호 또는 기타 제한 장치를 제한할 수 있는 방법이 있습니까?각자?
데모 코드:
Parallel.ForEach(listOfWebpages, webpage => {
Download(webpage);
});
실제 작업은 웹 페이지와 관련이 없으므로 창의적인 웹 크롤링 솔루션은 도움이 되지 않습니다.
다음을 지정할 수 있습니다.MaxDegreeOfParallelism순식간에ParallelOptions매개변수:
Parallel.ForEach(
listOfWebpages,
new ParallelOptions { MaxDegreeOfParallelism = 4 },
webpage => { Download(webpage); }
);
MSDN: 병렬 옵션.최대 병렬 처리 수준
병렬 옵션을 사용하고 최대 병렬도를 설정하여 동시 스레드 수를 제한할 수 있습니다.
Parallel.ForEach(
listOfwebpages,
new ParallelOptions{MaxDegreeOfParallelism=2},
webpage => {Download(webpage);});
다른 오버로드 사용Parallel.Foreach그것은 예를 들어, 그리고 설정.MaxDegreeOfParallelism병렬로 실행되는 인스턴스 수를 제한합니다.
그리고 VB.net 사용자들에게는 (검색이 이상하고 찾기가 어렵습니다)...
Parallel.ForEach(listOfWebpages, New ParallelOptions() With {.MaxDegreeOfParallelism = 8}, Sub(webpage)
......end sub)
언급URL : https://stackoverflow.com/questions/9290498/how-can-i-limit-parallel-foreach
반응형
'programing' 카테고리의 다른 글
| 루비의 다른 배열에 배열을 추가하고 다차원 결과로 끝나지 않으려면 어떻게 해야 합니까? (0) | 2023.05.17 |
|---|---|
| SQL Server 2008을 사용하여 테이블에서 상위 1000개 행을 삭제하는 방법은 무엇입니까? (0) | 2023.05.17 |
| Bash를 사용하는 문자열에서 문자 발생 횟수 (0) | 2023.05.12 |
| 'urlencode'에는 'urlencode' 특성이 없습니다. (0) | 2023.05.12 |
| 파일에서 대소문자를 구분하지 않는 문자열을 grep하는 방법은 무엇입니까? (0) | 2023.05.12 |