Программа Concurrency в Go выстроена последовательно: от устройства выполнения кода до сложных алгоритмов синхронизации и конкурентных вычислений.
Разберем, какие вопросы помогает изучать каждый блок и как эти знания можно применять на практике.
1️⃣ Как работает конкурентный код
Начинаем с архитектуры процессора, операционной системы, устройства горутин и планировщика Go. Эти темы помогают разобраться, как выполняется конкурентный код, какие ресурсы он использует и какие ограничения возникают на уровне рантайма Go и процессора.
2️⃣ Как синхронизировать работу горутин
Изучаем Mutex, RWMutex, WaitGroup, Once, атомарные операции и другие примитивы синхронизации. Разбираем, как защищать общие данные, дожидаться завершения горутин и выбирать инструменты под требования конкретной задачи.
3️⃣ Как организовать взаимодействие задач
Переходим к каналам, select, паттернам и таймерам. Здесь рассматриваем, как передавать данные между горутинами, координировать их работу и организовывать разные сценарии обработки.
4️⃣Как управлять отменой и понимать гарантии памяти
Разбираем пакет context и барьеры памяти. Изучаем, как передавать сигнал отмены связанным операциям и какие гарантии порядка и видимости операций важны при конкурентном выполнении.
5️⃣Как устроены алгоритмы синхронизации
Изучаем алгоритмы синхронизации и lock-free структуры данных. Разбираем принципы их работы, ограничения и условия, которые важно учитывать при выборе подхода.
Также в тариф «Премиум» входят два дополнительных модуля:
〰️урок 9 - конкурентные вычисления. Изучаем подходы к организации конкурентных вычислений, акторную модель, закон Амдала и изоляцию транзакций.
〰️ урок 10 - практическое применение. Разбираем реализацию worker pool, синхронизатора кэша, scheduler и batcher.
⭐Кроме того, в Премиуме предусмотрена проверка домашних заданий преподавателем.
Как проходит обучение?
Уроки доступны в записи, после каждого модуля предусмотрены короткие обязательные тесты. Для самостоятельного закрепления есть домашние задания, а возникшие вопросы можно обсуждать Q&A-сессиях и во время взаимного code review. Так можно последовательно изучать механизмы concurrency, возвращаться к сложным темам, проверять понимание и применять материал на практике.
Курс рассчитан прежде всего на Go-разработчиков уровня Middle/Senior, а также разработчиков из других backend-стеков, которые уже знакомы с основами Go, алгоритмами и структурами данных.
Новый поток Concurrency в Go стартует 23 ноября.
Если хотите систематизировать знания и глубже разобраться в конкурентном программировании, изучите полную программу курса и выберите подходящий формат обучения.
➡️ Посмотреть программу и записаться
