Sobes.tech
Junior — Middle

Cum se realizează interacțiunea între goroutines în Go?

sobes.tech AI

Răspuns de la AI

În Go, interacțiunea între goroutines se realizează prin canale (channels). Canalele permit transferul sigur de date între goroutines și sincronizarea acestora.

Puncte cheie:

  • Canalul se creează cu make(chan Tip).
  • Trimiterea în canal: ch <- valoare.
  • Primirea din canal: valoare := <-ch.
  • Canalele pot fi cu buffer sau fără buffer.

Exemplu:

func main() {
    ch := make(chan string)

    go func() {
        ch <- "salut din goroutine"
    }()

    msg := <-ch
    fmt.Println(msg)
}

Astfel, canalele asigură o interacțiune sigură și convenabilă între goroutines paralele, fără a fi nevoie să se utilizeze mutex-uri sau alte mecanisme de blocare.