Назад к вопросам
МТС Digital
Junior — Middle
78
Какие типы реализации параллельных задач ты знаешь?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Go параллельные задачи можно реализовать несколькими способами:
-
Горутины (goroutines) — легковесные потоки, которые запускаются с помощью ключевого слова
go. Они позволяют выполнять функции параллельно. -
Каналы (channels) — используются для коммуникации и синхронизации между горутинами, позволяют передавать данные безопасно.
-
Worker pools — пул горутин, которые берут задачи из очереди и обрабатывают их, что помогает контролировать количество одновременно работающих горутин.
-
sync.WaitGroup — для ожидания завершения группы горутин.
Пример запуска горутины и передачи данных через канал:
ch := make(chan int)
go func() {
ch <- 42 // отправка значения в канал
}()
val := <-ch // получение значения из канала
fmt.Println(val)