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