Junior — Middle
Ispričajte o svom iskustvu u korišćenju kanala za organizovanje interakcije između komponenti ili niti.
sobes.tech АИ
Одговор од АИ
U Go, kanali se koriste za organizaciju sigurne razmene podataka između gorutina, što olakšava sinhronizaciju i komunikaciju.
Primer korišćenja kanala za prenos podataka između dve gorutine:
package main
import (
"fmt"
"time"
)
func worker(ch chan string) {
msg := <-ch // primanje poruke iz kanala
fmt.Println("Primljena poruka:", msg)
}
func main() {
ch := make(chan string)
go worker(ch)
ch <- "Zdravo iz main!" // slanje poruke u kanal
time.Sleep(time.Second) // čekanje na završetak gorutine
}
Kanali pomažu u izbegavanju trka podataka i čine kod čitljivijim i održivijim pri radu sa konkurentnošću.