Parallel LINQ | Параллельное программирование
Описание
Инфраструктура PLINQ автоматически распараллеливает локальные запросы LINQ. Преимущество PLINQ заключается в простоте использования, т.к. ответственность за выполнение работ по разбиению и объединению результатов перекладывается на .NET Framework.
Для применения PLINQ просто вызовите метод AsParallel на входной последовательности и затем продолжайте запрос LINQ обычным образом. AsParallel представляет собой расширяющий метод в классе System.Linq.ParallelEnumerable. Он помещает входные данные в оболочку последовательности, основанной на ParallelQuery, что вызывает привязку последующих операций запросов LINQ к альтернативному набору расширяющих методов, которые определены в классе ParallelEnumerable. Они предоставляют параллельные реализации для всех стандартных операций запросов. По существу они разбивают входную последовательность на порции, которые выполняются в разных потоках, и объединяют результаты снова в единственную выходную последовательность для дальнейшего потребления.
Инфраструктура PLINQ предназначена только для локальных коллекций: она не работает с LINQ to SQL или Entity Framework, потому что в таких ситуациях LINQ транслируется в код SQL, который затем выполняется на сервере баз данных. Тем не менее PLINQ можно использовать для выполнения дополнительных локальных запросов в результирующих наборах, полученных из запросов к базам данных.
Таймкоды:
00:00 ► Вступление
00:10 ► Компоненты Parallel Framework
05:24 ► Модель выполнения PLINQ
07:42 ► Вычисление простых чисел
13:59 ► Параллельная программа проверки орфографии
22:06 ► Функциональная чистота
22:36 ► Изменение степени параллелизма
23:37 ► Отмена
25:18 ► Оптимизация на выходной стороне
26:46 ► Оптимизация на входной стороне
30:29 ► Влияние на стратегию работы PLINQ
32:29 ► Оптимизация специального агрегирования
Учебные материалы к данному видео доступны по ссылке:
https://csharpcooking.github.io/posts/Parallel-Programming/
#ПараллельноеПрограммирование #ParallelLINQ
Рекомендуемые видео




















