Sobes.tech
Junior — Middle

Ako implementovať výmenu informácií medzi dvoma gorutinami v jazyku Go?

sobes.tech AI

Odpoveď od AI

V Go sa výmena informácií medzi dvoma gorutinami zvyčajne prebieha pomocou kanálov (channels). Kanály umožňujú bezpečný prenos dát medzi gorutinami a ich synchronizáciu.

Príklad výmeny cez kanál:

package main

import (
    "fmt"
)

func sender(ch chan<- string) {
    ch <- "Ahoj od sendera"
}

func receiver(ch <-chan string) {
    msg := <-ch
    fmt.Println("Prijatá správa:", msg)
}

func main() {
    ch := make(chan string)
    go sender(ch)
    go receiver(ch)

    // Čakáme, kým gorutiny neskončia
    var input string
    fmt.Scanln(&input)
}

Tu sender posiela reťazec do kanála a receiver ho číta. Kanály zabezpečujú bezpečnú výmenu dát bez potreby používať mutexy alebo iné synchronizačné mechanizmy.