Junior — Middle
Как се осъществява взаимодействието между горутините в Go?
sobes.tech AI
Отговор от AI
В Go взаимодействието между горутините се осъществява чрез канали (channels). Каналите позволяват безопасно пренасяне на данни между горутините и тяхната синхронизация.
Основни моменти:
- Каналът се създава с
make(chan Тип). - Изпращане към канал:
ch <- стойност. - Получаване от канал:
стойност := <-ch. - Каналите могат да бъдат буферирани или без буфер.
Пример:
func main() {
ch := make(chan string)
go func() {
ch <- "здравей от горутината"
}()
msg := <-ch
fmt.Println(msg)
}
По този начин, каналите осигуряват безопасна и удобна комуникация между паралелните горутини без необходимост от използване на мьютекси или други механизми за блокиране.