Лабораторная работа № 3.3
КООРДИНАЦИЯ ЗАДАЧ
Цель – ознакомление с основными строительными блоками TPL, которые могут использоваться в процессе создания современных параллельных программ (продолжениями и дочерними задачами); рассмотрение нескольких более совершенных методов синхронизации; ознакомление с параллельным шаблоном «потребитель-производитель» и пользовательским планировщиком, которые являются одними из самых полезных и гибких инструментов, доступных в параллельном программировании надежных и эффективных приложений.
Содержание работы
1. Использование класса Barrier для синхронизации при координировании задач (Листинг 12).
2. Работа с исключениями путем сокращения участников (Листинг 13).
3. Работа с исключениями с использованием отмены (Листинг 14).
4. Использование примитива CountDownEvent (Листинг 15).
5. Использование класса ManualResetEventSlim (Листинг 16).
6. Использование класса AutoResetEvent (Листинг 17).
7. Использование класса SemaphoreSlim (Листинг 18).
|
|
8. Создание реализации «производитель-потребитель» (Листинг 19).
9. Использование экземпляров множественных коллекций BlockingCollection (Листинг 20).
Выводы
В этом разделе были рассмотрены основные строительные блоки TPL, которые могут использоваться в процессе создания современнымных параллельных программ. Продолжения и дочерние задачи позволяют объединять вместе части работы, которые выполняются только в случае, если Ваши критерии удовлетворены. Мы также рассмотрели несколько более совершенных методов синхронизации – инструментов, которые используются, чтобы гарантировать предсказуемое выполнение Вашего кода.
Этот раздел также представил параллельный шаблон «потребитель-производитель» и пользовательский планировщик, которые являются одними из самых полезных и гибких инструментов, доступных в параллельном программировании, и овладение мастерством их использования поможет Вам создавать более надежные и эффективные приложения.