Конкурентность в Go (Golang): Практическое руководство — Алексей Кузнецов — обложка книги
300 страниц
Go (Golang)
PDF
4.5

Конкурентность в Go (Golang): Практическое руководство

Горутины, каналы, мьютексы и продвинутые паттерны конкурентного программирования

Автор:

Год:

Краткое содержимое:

Книга «Конкурентность в Go (Golang)» — это полноценное практическое руководство, которое поможет вам освоить одну из самых мощных и одновременно сложных тем в языке программирования Go. Конкурентность заложена в саму архитектуру Go, и без её понимания невозможно создавать эффективные, быстрые и масштабируемые приложения. Эта книга проведёт вас от основ до продвинутых паттернов, которые используются в production-системах.

О чём эта книга

Книга начинается с фундаментальных концепций: что такое горутины и чем они отличаются от потоков ОС, как работают каналы (buffered и unbuffered), и как правильно синхронизировать доступ к данным с помощью мьютексов и атомарных операций. Вы узнаете, как избежать состояния гонки (race condition) и взаимных блокировок (deadlock). Затем автор переходит к более сложным темам:

  • Паттерны с использованием select и тайм-аутов
  • Организация пайплайнов данных (pipeline)
  • Управление группой горутин через sync.WaitGroup и errgroup
  • Использование пула воркеров для контроля параллелизма
  • Контексты (context) и отмена операций
  • Продвинутые примитивы синхронизации: sync.Once, sync.Pool, sync.Cond
  • Тестирование конкурентного кода с помощью go test -race

Для кого эта книга

Книга будет полезна:

  • Начинающим Go-разработчикам, которые уже освоили синтаксис языка и хотят понять, как писать эффективные многопоточные программы
  • Опытным программистам на других языках (Java, C#, Python), которые переходят на Go и хотят изучить его уникальную модель конкурентности
  • Backend-разработчикам, создающим высоконагруженные сервисы, микросервисы, веб-серверы и системы реального времени
  • Студентам и всем, кто интересуется параллельным программированием и хочет освоить лучшие практики

Что вы узнаете после прочтения

После изучения материала вы сможете:

  • Правильно проектировать конкурентные архитектуры, избегая типичных ошибок
  • Эффективно использовать горутины и каналы для передачи данных и синхронизации
  • Писать надёжный код, защищённый от гонок данных и дедлоков
  • Применять продвинутые паттерны: fan-in, fan-out, or-done, tee-channel, bridge-channel
  • Интегрировать конкурентность в реальные проекты с помощью context и graceful shutdown
  • Профилировать и отлаживать конкурентный код

Книга содержит множество примеров кода, которые можно сразу запустить и модифицировать. Все примеры сопровождаются подробными комментариями и пояснениями. Это не просто теория — это практическое руководство, которое станет вашим настольным справочником по конкурентности в Go.

Автор книги — Алексей Кузнецов, senior backend-разработчик с 10-летним опытом, из которых последние 6 лет он пишет на Go в высоконагруженных проектах. Алексей известен своими докладами на конференциях Go-сообщества и серией статей по конкурентному программированию.

Рекомендаций