Сообщество RSS DEV

Шаблоны проектирования параллелизма: от фундаментальной теории к архитектуре

В статье рассматриваются конкурентность и параллелизм, различаются их значения и понимаются компромиссы общей памяти и передачи сообщений. В ней вводятся законы Амдала и Густафсона, иллюстрирующие пределы распараллеливания. Затем выделяются четыре шаблона ошибок конкурентности, которых следует избегать. В статье предлагается трехуровневая ментальная модель для проектирования конкурентных систем: архитектура, декомпозиция задач и управление состоянием. Объясняются шаблоны декомпозиции задач, такие как fork-join, map-reduce, кража работы и мастер-рабочий. Архитектурные шаблоны, включая конвейер, производитель-потребитель и scatter-gather, описываются для потока данных. Наконец, рассматриваются асинхронные шаблоны, модель актора, CSP, futures/promises и проекты reactor/proactor. Шаблоны помогают управлять временем ожидания ввода-вывода и позволяют создавать масштабируемые, эффективные конкурентные системы. Современный дизайн использует комбинацию этих шаблонов.
favicon
dev.to
Concurrency Design Patterns: From Fundamental Theory to Architecture
Изображение к статье: Шаблоны проектирования параллелизма: от фундаментальной теории к архитектуре
Create attached notes ...