Junior — Middle
Kako se vrši razmena informacija između gorutina u Go?
sobes.tech АИ
Одговор од АИ
U Go jeziku, razmena informacija između gorutina se obavlja uglavnom putem kanala (channels). Kanali omogućavaju sigurnu transmisiju podataka između gorutina, obezbeđuju sinhronizaciju i sprečavaju uslove trke.
Primer korišćenja kanala:
ch := make(chan int)
// Slanje podataka u gorutini
go func() {
ch <- 42
}()
// Prijem podataka u glavnoj gorutini
value := <-ch
fmt.Println(value) // Ispisaće 42
Kanali mogu biti sa buferom ili bez, što utiče na ponašanje blokiranja pri slanju i primanju podataka. Pored toga, za razmenu se mogu koristiti i drugi mehanizmi, poput zajedničkih promenljivih sa mutexima, ali kanali su glavni idiomatski način komunikacije u Go.