Junior — Middle
Jak odbywa się interakcja między goroutines za pomocą kanałów w Go?
sobes.tech AI
Odpowiedź od AI
В Go взаимодействие между горутинами осуществляется через каналы (channels), которые позволяют безопасно передавать данные между параллельными потоками выполнения.
Канал — это типизированная очередь, в которую одна горутина может отправлять данные, а другая — получать их. Это обеспечивает синхронизацию и обмен информацией без использования явных блокировок.
Пример:
ch := make(chan int) // создаём канал для передачи int
go func() {
ch <- 42 // отправляем значение в канал
}()
value := <-ch // получаем значение из канала
fmt.Println(value) // выведет 42
Таким образом, каналы позволяют горутинам обмениваться сообщениями и синхронизировать работу, избегая гонок данных.