Тренируйте Go-паттерны, которые встречаются при работе с goroutines, channels, wait groups, mutexes и select.
Зачем тренировать concurrency-печать
Конкурентный код часто несёт дополнительную структуру и пунктуацию: стрелки каналов, вложенные блоки, select cases и synchronization helpers. Эта страница собирает такие паттерны рядом, чтобы их можно было повторять целенаправленно.
Кнопка темы ведёт к следующему незавершённому упражнению по concurrency, а если такого нет — к первому релевантному упражнению темы.
Concurrency-фрагменты на Go добавляют channel arrows, select-блоки, synchronization helpers и многослойные отступы, из-за которых печать часто становится медленнее, чем в линейном коде.
Практика внутри одной темы помогает повторять одни и те же структурные движения, пока они не перестанут ломать ритм набора.
Читаемые coordination-паттерны
Эти упражнения не пытаются покрыть всю теорию конкурентности. Они сфокусированы на читаемых coordination-паттернах, которые действительно приходится печатать в Go-коде.
Поэтому тема полезна и при первом знакомстве с синтаксисом, и когда нужно просто увереннее набирать уже знакомые конструкции.
Уроки по конкурентности
Эти уроки берутся напрямую из раздела Go Concurrency в course registry.
Горутины
Тренируйте запуск goroutine с осмысленными аргументами функции.
Упражнений: 1
Каналы
Тренируйте отправку, чтение и закрытие простых каналов.
Упражнений: 1
Буферизированные каналы
Тренируйте ёмкость канала и неблокирующую отправку.
Упражнений: 1
Select
Тренируйте ветки select с done-каналами и таймерами.
Упражнений: 1
WaitGroup
Тренируйте sync.WaitGroup вокруг циклов конкурентной обработки.
Упражнений: 1
Mutex
Тренируйте lock и unlock без небезопасных сокращений.
Упражнений: 1
Актуальные concurrency-упражнения
Откройте любое упражнение ниже, чтобы тренировать goroutines, channels, synchronization и select в обычном Go-тренажёре.