Какие есть способы синхронизации горутин?

Middle
1.2k просмотров
AFK Offer AI

Основных способов несколько. Каналы — самый идиоматичный, через них горутины и общаются, и синхронизируются. sync.WaitGroup — когда нужно просто дождаться завершения группы горутин. sync.Mutex/RWMutex — для защиты shared state. sync.Once — гарантирует однократное выполнение. Ещё есть context для отмены и таймаутов, и sync/atomic для простых атомарных операций над числами. Выбор зависит от задачи: если передаёшь данные — каналы, если защищаешь ресурс — мьютекс.

Следующий вопрос

Что такое ORM и нужен ли он?