Библиотека параллельных задач (TPL)
Библиотека параллельных задач (TPL) представляет собой набор открытых типов и API-интерфейсов в пространствах имен System.Threading и System.Threading.Tasks. Цель TPL — повышение производительности труда разработчиков за счет упрощения процедуры добавления параллелизма в приложения. TPL динамически масштабирует степень параллелизма, чтобы использовать все доступные процессоры наиболее эффективно. Кроме того, в библиотеке параллельных задач осуществляется секционирование работы, планирование потоков в пуле ThreadPool, поддержка отмены, управление состоянием и выполняются другие низкоуровневые задачи. Используя библиотеку параллельных задач, можно повысить производительность кода, сосредоточившись на работе, для которой предназначена программа.
В платформа .NET Framework 4 TPL — предпочтительный способ написания многопоточного и параллельного кода. Однако не всякий код подходит для параллелизации. Например, если цикл за каждую итерацию выполняет небольшой объем работ или выполняется за небольшое число итераций, из-за дополнительной нагрузки, которую параллелизация оказывает на систему, код может выполняться медленнее. Кроме того, параллелизация, как и любой многопоточный код, упрощает выполнение программы. Хотя библиотека параллельных задач упрощает многопоточные сценарии, рекомендуется иметь базовое понимание понятий потоков, например блокировки, взаимоблокировки и состояния гонки, чтобы эффективно использовать библиотеку параллельных задач.
Связанные статьи
Заголовок | Description |
---|---|
Параллелизм данных | Описание создания параллельных циклов for и foreach (For и For Each в Visual Basic). |
Асинхронное программирование на основе задач | Описание создания и запуска задач неявно с использованием перегрузки Parallel.Invoke или явно с использованием объектов Task напрямую. |
Поток данных | Описывает использование компонентов потока данных в библиотеке потоков данных TPL для обработки нескольких операций. Эти операции должны взаимодействовать друг с другом и обрабатывать данные по мере его доступности. |
Возможные ошибки, связанные с параллелизмом данных и задач | Описание некоторых распространенных ошибок и способов их избежать. |
Parallel LINQ (PLINQ) | Описание способов достижения параллелизма данных с помощью запросов LINQ. |
Параллельное программирование | Узел верхнего уровня для параллельного программирования .NET. |