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