Sobes.tech
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)
}

По този начин, каналите осигуряват безопасна и удобна комуникация между паралелните горутини без необходимост от използване на мьютекси или други механизми за блокиране.