Как передать данные между горутинами?

Junior
655 просмотров
AFK Offer AI

Основной способ — каналы. Создаёшь канал через make(chan Type), одна горутина пишет ch <- value, другая читает value := <-ch. Это и передача данных, и синхронизация в одном флаконе. Можно и через shared memory с мьютексом, но в Go принято "Don't communicate by sharing memory; share memory by communicating" — то есть каналы предпочтительнее.

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

Что такое sync.Map и когда её использовать?