Junior — Middle
Kako se realizuje razmena poruka između pošiljaoca i primaoca podataka u jeziku Go?
sobes.tech АИ
Одговор од АИ
U jeziku Go, razmena poruka između pošiljaoca i primaoca podataka realizuje se pomoću kanala (channels). Kanali omogućavaju goroutinama da sigurno razmenjuju podatke, sinhronizujući njihovo izvršavanje.
Kanal se kreira pomoću funkcije make i može biti sa baferom ili bez:
ch := make(chan int) // kanal bez bafera
chBuf := make(chan int, 5) // kanal sa baferom od 5
Slanje u kanal:
ch <- 42 // pošalji vrednost 42 u kanal ch
Primanje iz kanala:
value := <-ch // primi vrednost iz kanala ch
Primer razmene poruka između dve goroutine:
package main
import (
"fmt"
"time"
)
func main() {
ch := make(chan string)
go func() {
ch <- "Zdravo od goroutine"
}()
msg := <-ch
fmt.Println(msg)
}
Na ovaj način, kanali u Go omogućavaju sigurnu i pogodnu komunikaciju između paralelnih tokova izvršenja.