Junior — Middle
Hogyan valósul meg a kommunikáció az adatok küldője és fogadója között a Go nyelvben?
sobes.tech MI
Válasz az MI-től
A Go nyelvben az üzenetküldés a küldő és a fogadó között csatornák (channels) segítségével valósul meg. A csatornák lehetővé teszik a goroutine-ok számára, hogy biztonságosan cseréljenek adatokat, szinkronizálva végrehajtásukat.
Egy csatornát a make függvény segítségével hozunk létre, és lehet pufferelt vagy puffer nélküli:
ch := make(chan int) // puffer nélküli csatorna
chBuf := make(chan int, 5) // pufferelt csatorna, mérete 5
Küldés a csatornára:
ch <- 42 // érték küldése a csatornára
Fogadás a csatornáról:
value := <-ch // érték fogadása a csatornáról
Példa üzenetcsere két goroutine között:
package main
import (
"fmt"
"time"
)
func main() {
ch := make(chan string)
go func() {
ch <- "Helló a goroutinéból"
}()
msg := <-ch
fmt.Println(msg)
}
Így a csatornák Go-ban biztonságos és kényelmes kommunikációt biztosítanak párhuzamos végrehajtási szálak között.