주요 콘텐츠로 건너뛰기 이 브라우저는 더 이상 지원되지 않습니다. 최신 기능, 보안 업데이트, 기술 지원을 이용하려면 Microsoft Edge로 업그레이드하세요. 데이터 병렬 처리(작업 병렬 라이브러리)
이 문서의 내용데이터 병렬 처리는 소스 컬렉션 또는 배열의 요소에서 동일한 작업이 동시에(즉, 병렬로) 수행되는 시나리오를 가리킵니다. 데이터 병렬 작업에서 소스 컬렉션은 여러 스레드가 서로 다른 세그먼트에서 동시에 작동할 수 있도록 분할됩니다. TPL(작업 병렬 라이브러리)은 System.Threading.Tasks.Parallel 클래스를 통해 데이터 병렬 처리를 지원합니다. 이 클래스는 for 및
foreach 루프(Visual Basic에서는 참고 이 문서에서는 람다 식을 사용하여 TPL에 대리자를 정의합니다. C# 또는 Visual Basic의 람다 식을 잘 모르는 경우 PLINQ 및 TPL의 람다 식을 참조하세요.
병렬 루프가 실행되는 경우 TPL은 루프가 동시에 여러 부분에서 작동할 수 있도록 데이터 소스를 분할합니다. 내부적으로 작업 스케줄러는 시스템 리소스 및 작업에 따라 작업을 분할합니다. 가능한 경우 스케줄러는 작업 불균형이 발생할 때 여러 스레드 및 프로세서 간에 작업을 재배포합니다. Parallel.For 및 Parallel.ForEach 메서드 둘 다에는 루프 실행을 중지 또는 중단하고, 다른 스레드의 루프 상태를 모니터링하고, 스레드 로컬 상태를 유지 관리하고, 스레드 로컬 개체를 종료하고, 동시성 수준을 제어할 수 있도록 하는 여러 오버로드가 있습니다. 이 기능을 사용할 수 있도록 하는 도우미 형식에는 ParallelLoopState, ParallelOptions, ParallelLoopResult, CancellationToken 및 CancellationTokenSource가 있습니다. 자세한 내용은 병렬 프로그래밍의 패턴: .NET Framework 4의 병렬 패턴 이해 및 적용을 참조하세요. 선언적 또는 쿼리와 유사한 구문을 사용한 데이터 병렬 처리는 PLINQ에서 지원됩니다. 자세한 내용은 PLINQ(병렬 LINQ)를 참조하세요.
참조
주요 콘텐츠로 건너뛰기 이 브라우저는 더 이상 지원되지 않습니다. 최신 기능, 보안 업데이트, 기술 지원을 이용하려면 Microsoft Edge로 업그레이드하세요. .NET의 병렬 프로그래밍: 설명서에 대한 가이드
이 문서의 내용많은 개인용 컴퓨터 및 워크스테이션에는 여러 CPU 코어가 있기 때문에 다중 스레드를 동시에 실행할 수 있습니다. 하드웨어를 활용하기 위해 코드를 병렬화하여 작업을 여러 프로세서에 분산할 수 있습니다. 이전의 병렬화에서는 스레드 및 잠금에 대한 저수준 조작이 필요했습니다. Visual Studio 및 .NET에서 런타임, 클래스 라이브러리 형식 및 진단 도구를 제공하여 병렬 프로그래밍 지원이 향상됩니다. .NET Framework 4에 도입된 이 기능은 병렬 개발을 단순화하므로, 스레드 또는 스레드 풀에 대해 직접 작업할 필요 없이 효율적이고 세분화된, 확장성 있는 병렬 코드를 자연스러운 언어로 작성할 수 있습니다. 다음 그림은 .NET의 병렬 프로그래밍 아키텍처에 대한 간략한 개요를 제공합니다.
참조
|