Sobes.tech
Назад к вопросам
Junior — Middle
77

Каким образом осуществляется взаимодействие между горутинами в Go?

Компании, где спрашивали
Фабрика РешенийФабрика Решений

Ответ от нейросети

sobes.tech AI

В Go взаимодействие между горутинами осуществляется с помощью каналов (channels). Каналы позволяют безопасно передавать данные между горутинами и синхронизировать их работу.

Основные моменты:

  • Канал создаётся с помощью make(chan Type).
  • Отправка в канал: ch <- value.
  • Получение из канала: value := <-ch.
  • Каналы могут быть буферизированными или небуферизированными.

Пример:

func main() {
    ch := make(chan string)

    go func() {
        ch <- "привет из горутины"
    }()

    msg := <-ch
    fmt.Println(msg)
}

Таким образом, каналы обеспечивают безопасное и удобное взаимодействие между параллельными горутинами без необходимости использовать мьютексы или другие механизмы блокировок.