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

Многие персональные компьютеры и рабочие станции имеют ЦП, содержащие два или четыре ядра, которые позволяют одновременно выполнять несколько потоков. В ближайшем будущем ожидается, что компьютеры будут иметь значительно больше ядер. Чтобы воспользоваться преимуществами существующего и будущего оборудования, можно распараллеливать код для распределения работы между несколькими процессорами. В прошлом распараллеливание требовало управления потоками и взаимоблокировками на низком уровне. Visual Studio 2010 и .NET Framework 4 улучают поддержка параллельного программирования, путем предоставления новой среды выполнения, новых типов библиотек класса и новых средств диагностики. Эти функциональные возможности упрощают параллельную разработку, что позволяет разработчикам писать эффективный, детализированный и масштабируемый параллельный код с помощью естественных выразительных средств без необходимости непосредственной работы с потоками или пулом потоков. На рисунке ниже представлен общий обзор архитектуры параллельного программирования в .NET Framework 4.

Архитектура параллельного программирования в платформе .NET

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

Технология

Описание

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

Предоставляет документацию для класса System.Threading.Tasks.Parallel, который содержит параллельные версии цикла For, цикла ForEach; а также для класса System.Threading.Tasks.Task, который предоставляет предпочитаемый способ для выражения асинхронных операций.

Parallel LINQ (PLINQ)

Параллельная реализация LINQ to Objects, которая значительно улучшает производительность во множестве сценариев.

Структуры данных для параллельного программирования

Предоставляет ссылки на документацию для потокобезопасные классы коллекций, упрощенные типы синхронизации, типы для "ленивой" инициализации.

Средства диагностики параллельного выполнения

Предоставляет ссылки на документацию в окнах отладчика среды Visual Studio для задач, параллельных стеков, Визуализатор параллелизма, который состоит из набора представлений в профилировщике Visual Studio Application Lifecycle Management, используемого для отладки параллельного кода и настройки его производительности.

Пользовательские разделители для PLINQ и TPL

Описывает работу модулей разделения, порядок настройки модулей разделения по умолчанию, порядок создания нового модуля разделения.

Фабрики задач

Описывает роль класса System.Threading.Tasks.TaskFactory.

Планировщики заданий

Описывает порядок работы модуля планирования и порядок их настройки.

Лямбда-выражения в PLINQ и библиотеке параллельных задач

Предоставляет краткие общие сведения по лямбда выражениям в C# и Visual Basic, показывает, как они используются в PLINQ и в библиотеке параллельных задач.

Дополнительные сведения (параллельное программирование)

Предоставляет ссылки на дополнительные ресурсы примеров и документации для параллельного программирования на платформе .NET Framework.

Расширенное программирование в среде .NET Framework

Узел верхнего уровня для дополнительных разделов, например по параллельному программированию и потокам.

См. также

Другие ресурсы

Patterns for Parallel Programming: Understanding and Applying Parallel Patterns with the .NET Framework 4