Parallel ExtensionsParallel Extensions (с англ. — «Параллельные расширения») — библиотека управляемого параллелизма, разработанная в результате сотрудничества Microsoft Research и группы CLR[1] в Microsoft. Библиотека была выпущена в версии 4.0 .NET Framework[2]. Она состоит из двух частей: Параллельный LINQ (PLINQ) и Библиотека параллельных задач (TPL)[3][4]. Она также состоит из набора структур данных координации (CDS) — наборов структур данных, используемых для синхронизации и координации выполнения параллельных задач[5]. Параллельный LINQPLINQ или Parallel LINQ[6] распараллеливает выполнение запросов к объектам (LINQ для Объектов) и данным XML[7] (LINQ для XML). PLINQ предназначен для выявления параллелизма данных[англ.] с помощью запросов[3]. PLINQ может распараллелить любые вычисления над объектами, реализованные как запросы. Однако объекты должны реализовывать интерфейс Библиотека параллельных задачБиблиотека параллельных задач (TPL[8]) — это компонент параллелизма задач[укр.] параллельных расширений .NET
[9]. Она предоставляет параллельные конструкции, такие как параллельные циклы TPL также включает другие конструкции, такие как Задача и Будущее. Задача — это действие, которое может выполняться независимо от остальной части программы. В этом смысле она семантически эквивалентна потоку, за исключением того, что это более лёгкий объект и не требует дополнительных затрат на создание потока ОС. Задачи ставятся в очередь объектом Диспетчер задач и планируются для выполнения в нескольких потоках ОС в пуле потоков[англ.], когда приходит их очередь. Будущее — это задача, которая возвращает результат. Результат вычисляется в фоновом потоке, инкапсулированном объектом Future, и буферизуется до тех пор, пока не будет получен[4]. Если будет сделана попытка получить результат до того, как он будет вычислен, то запрашивающий поток будет блокироваться до тех пор, пока результат не станет доступен[9]. Другой конструкцией TPL является класс Parallel. TPL предоставляет базовую форму структурированного параллелизма с помощью трёх статических методов в классе Parallel:
АрхитектураОсновная концепция Параллельных расширений .NET — это PFX включает объект См. также
Ссылки
Внешние ссылки |