TPL(작업 병렬 라이브러리)Task Parallel Library (TPL)

TPL(작업 병렬 라이브러리)은 System.ThreadingSystem.Threading.Tasks 네임스페이스에 포함된 공용 형식 및 API의 집합입니다.The Task Parallel Library (TPL) is a set of public types and APIs in the System.Threading and System.Threading.Tasks namespaces. TPL의 목적은 응용 프로그램에 병렬 처리 및 동시성 기능을 추가하는 과정을 단순화하여 개발자가 더 생산적으로 작업할 수 있도록 하는 것입니다.The purpose of the TPL is to make developers more productive by simplifying the process of adding parallelism and concurrency to applications. TPL은 사용할 수 있는 모든 프로세서를 가장 효율적으로 사용하도록 동시성 수준을 동적으로 조정합니다.The TPL scales the degree of concurrency dynamically to most efficiently use all the processors that are available. 또한 TPL은 작업의 분할, ThreadPool에 대한 스레드 예약, 취소 지원, 상태 관리 및 기타 하위 수준 세부 정보를 처리합니다.In addition, the TPL handles the partitioning of the work, the scheduling of threads on the ThreadPool, cancellation support, state management, and other low-level details. TPL을 사용하면 프로그램의 설계 목적인 작업을 처리하는 데 집중하면서 코드의 성능을 최대화할 수 있습니다.By using TPL, you can maximize the performance of your code while focusing on the work that your program is designed to accomplish.

.NET Framework 4.NET Framework 4부터는 다중 스레드 및 병렬 코드를 작성하는 데 TPL을 사용하는 것이 좋습니다.Starting with the .NET Framework 4.NET Framework 4, the TPL is the preferred way to write multithreaded and parallel code. 그러나 코드에 따라서는 병렬화가 적합하지 않을 수도 있습니다. 예를 들어 루프에서 각 반복에 대해 수행할 작업의 양이 많지 않거나 실행되는 반복 횟수가 많지 않으면 병렬화에 따른 오버헤드로 인해 코드의 실행 속도가 오히려 더 느려질 수 있습니다.However, not all code is suitable for parallelization; for example, if a loop performs only a small amount of work on each iteration, or it doesn't run for many iterations, then the overhead of parallelization can cause the code to run more slowly. 또한 병렬화를 사용하면 다중 스레드 코드의 경우와 마찬가지로 프로그램 실행이 복잡해질 수 있습니다.Furthermore, parallelization like any multithreaded code adds complexity to your program execution. TPL은 다중 스레드 시나리오를 단순화하기는 하지만 TPL을 효과적으로 사용하려면 잠금, 교착 상태 및 경합 조건과 같이 스레딩과 관련된 기본적인 개념을 이해하고 있는 것이 좋습니다.Although the TPL simplifies multithreaded scenarios, we recommend that you have a basic understanding of threading concepts, for example, locks, deadlocks, and race conditions, so that you can use the TPL effectively.

제목Title 설명Description
데이터 병렬 처리Data Parallelism 병렬 forforeach(Visual Basic의 경우 ForFor Each) 루프를 만드는 방법을 설명합니다.Describes how to create parallel for and foreach loops (For and For Each in Visual Basic).
작업 기반 비동기 프로그래밍Task-based Asynchronous Programming Parallel.Invoke를 사용하여 암시적으로 또는 Task 개체를 직접 사용하여 명시적으로 작업을 만들고 실행하는 방법을 설명합니다.Describes how to create and run tasks implicitly by using Parallel.Invoke or explicitly by using Task objects directly.
데이터 흐름Dataflow 서로 통신해야 하는 여러 작업을 처리하거나 데이터를 사용할 수 있도록 처리하기 위해 TPL 데이터 흐름 라이브러리에서 데이터 흐름 구성 요소를 사용하는 방법을 설명합니다.Describes how to use the dataflow components in the TPL Dataflow Library to handle multiple operations that must communicate with one another or to process data as it becomes available.
TPL과 기타 비동기 패턴 사용Using TPL with Other Asynchronous Patterns .NET의 기타 비동기 패턴과 함께 TPL을 사용하는 방법을 설명합니다.Describes how to use TPL with other asynchronous patterns in .NET
데이터 및 작업 병렬 처리에서 발생할 수 있는 문제Potential Pitfalls in Data and Task Parallelism 몇 가지 일반적인 실수 및 이를 방지하는 방법을 설명합니다.Describes some common pitfalls and how to avoid them.
PLINQ(병렬 LINQ)Parallel LINQ (PLINQ) LINQ 쿼리를 사용하여 데이터 병렬 처리를 구현하는 방법을 설명합니다.Describes how to achieve data parallelism with LINQ queries.
병렬 프로그래밍Parallel Programming .NET 병렬 프로그래밍의 최상위 노드입니다.Top level node for .NET parallel programming.

참고 항목See Also

NET Framework를 사용한 병렬 프로그래밍 샘플Samples for Parallel Programming with the .NET Framework