Поделиться через


Библиотека параллельных задач

Библиотека параллельных задач (TPL) представляет собой набор открытых типов и API-интерфейсов в пространствах имен System.Threading и System.Threading.Tasks в .NET Framework 4. Библиотека параллельных задач предназначена для повышения производительности разработчиков за счет упрощения процесса добавления параллелизма в приложения. Она динамически масштабирует степень параллелизма для наиболее эффективного использования всех доступных процессоров. Кроме того, в библиотеке параллельных задач осуществляется секционирование работы, планирование потоков в пуле ThreadPool, поддержка отмены, управление состоянием и выполняются другие низкоуровневые задачи. Используя библиотеку параллельных задач, можно повысить производительность кода, сосредоточившись на работе, для которой предназначена программа.

Начиная с .NET Framework 4 библиотека параллельных задач является предпочтительным способом создания многопоточного и параллельного кода. Однако не всякий код подходит для параллелизации; например, если цикл за каждую итерацию выполняет небольшой объем работ или выполняется для небольшого числа итераций, из-за дополнительной нагрузки, которую параллелизация оказывает на систему, код может выполняться медленнее. Кроме того, параллелизация, как и любой многопоточный код, усложняет выполнение программы. Хотя библиотека параллельных задач упрощает многопоточные сценарии, рекомендуется иметь базовое понимание понятий потоков, например блокировки, взаимоблокировки и состояния гонки, чтобы эффективно использовать библиотеку параллельных задач. Дополнительные сведения об основных принципах параллельных вычислений см. в разделе Parallel Computer Developer Center на веб-сайте MSDN.

Связанные разделы

Название

Описание

Параллелизм данных (библиотека параллельных задач)

Описание создания параллельных циклов for и foreach (For и For Each в Visual Basic).

Параллелизм задач (библиотека параллельных задач)

Описание создания и запуска задач неявно с использованием перегрузки Parallel.Invoke или явно с использованием объектов Task напрямую.

Библиотека параллельных задач и другие асинхронные шаблоны

Описание использования библиотеки параллельных задач с другими асинхронными шаблонами в .NET.

Потенциальные ошибки, связанные с параллелизмом данных и задач

Описание некоторых распространенных ошибок и способов их избежать.

Parallel LINQ (PLINQ)

Описание способов достижения параллелизма данных с помощью запросов LINQ.

Параллельное программирование в .NET Framework

Узел верхнего уровня для параллельного программирования в .NET.