Junior — Middle
Wie erfolgt die Interaktion zwischen Goroutinen mithilfe von Kanälen in Go?
sobes.tech KI
Antwort von AI
В Go взаимодействие между горутинами осуществляется через каналы (channels), которые позволяют безопасно передавать данные между параллельными потоками выполнения.
Канал — это типизированная очередь, в которую одна горутина может отправлять данные, а другая — получать их. Это обеспечивает синхронизацию и обмен информацией без использования явных блокировок.
Пример:
ch := make(chan int) // создаём канал для передачи int
go func() {
ch <- 42 // отправляем значение в канал
}()
value := <-ch // получаем значение из канала
fmt.Println(value) // выведет 42
Таким образом, каналы позволяют горутинам обмениваться сообщениями и синхронизировать работу, избегая гонок данных.