Junior — Middle
Cum se realizează schimbul de informații între două goroutines în limbajul Go?
sobes.tech AI
Răspuns de la AI
În Go, schimbul de informații între două goroutines se realizează de obicei folosind canale (channels). Canalele permit transmiterea sigură a datelor între goroutines și sincronizarea acestora.
Exemplu de schimb printr-un canal:
package main
import (
"fmt"
)
func sender(ch chan<- string) {
ch <- "Salut de la sender"
}
func receiver(ch <-chan string) {
msg := <-ch
fmt.Println("Mesaj primit:", msg)
}
func main() {
ch := make(chan string)
go sender(ch)
go receiver(ch)
// Așteptăm ca goroutine-urile să se termine
var input string
fmt.Scanln(&input)
}
Aici, sender trimite un șir de caractere în canal, iar receiver îl citește. Canalele asigură o schimb sigur de date fără a fi nevoie de mutexuri sau alte mecanisme de sincronizare.