Junior — Middle
Kako se ostvaruje interakcija između gorutina pomoću kanala u Go?
sobes.tech АИ
Одговор од АИ
В Go взаимодействие между горутинами осуществляется через каналы (channels), которые позволяют безопасно передавать данные между параллельными потоками выполнения.
Канал — это типизированная очередь, в которую одна горутина может отправлять данные, а другая — получать их. Это обеспечивает синхронизацию и обмен информацией без использования явных блокировок.
Пример:
ch := make(chan int) // создаём канал для передачи int
go func() {
ch <- 42 // отправляем значение в канал
}()
value := <-ch // получаем значение из канала
fmt.Println(value) // выведет 42
Таким образом, каналы позволяют горутинам обмениваться сообщениями и синхронизировать работу, избегая гонок данных.