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

Какие типы реализации параллельных задач ты знаешь?

Компании, где спрашивали
МТС DigitalМТС Digital

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

sobes.tech AI

В Go параллельные задачи можно реализовать несколькими способами:

  • Горутины (goroutines) — легковесные потоки, которые запускаются с помощью ключевого слова go. Они позволяют выполнять функции параллельно.

  • Каналы (channels) — используются для коммуникации и синхронизации между горутинами, позволяют передавать данные безопасно.

  • Worker pools — пул горутин, которые берут задачи из очереди и обрабатывают их, что помогает контролировать количество одновременно работающих горутин.

  • sync.WaitGroup — для ожидания завершения группы горутин.

Пример запуска горутины и передачи данных через канал:

ch := make(chan int)
go func() {
    ch <- 42 // отправка значения в канал
}()
val := <-ch // получение значения из канала
fmt.Println(val)