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.