Junior — Middle
¿Cómo se realiza la interacción entre goroutines mediante canales en Go?
sobes.tech AI
Respuesta de la IA
В Go взаимодействие между горутинами осуществляется через каналы (channels), которые позволяют безопасно передавать данные между параллельными потоками выполнения.
Канал — это типизированная очередь, в которую одна горутина может отправлять данные, а другая — получать их. Это обеспечивает синхронизацию и обмен информацией без использования явных блокировок.
Пример:
ch := make(chan int) // создаём канал для передачи int
go func() {
ch <- 42 // отправляем значение в канал
}()
value := <-ch // получаем значение из канала
fmt.Println(value) // выведет 42
Таким образом, каналы позволяют горутинам обмениваться сообщениями и синхронизировать работу, избегая гонок данных.