Junior — Middle
Hogyan valósul meg a goroutine-ok közötti interakció a programozási nyelvben?
sobes.tech MI
Válasz az MI-től
A Go nyelvben a goroutine-ok közötti interakció általában csatornákon (channels) keresztül történik. A csatornák biztonságosan továbbítják az adatokat a goroutine-ok között, biztosítva a szinkronizációt és az üzenetváltást.
Példa egy csatorna használatára:
package main
import (
"fmt"
)
func worker(ch chan string) {
ch <- "kész"
}
func main() {
ch := make(chan string)
go worker(ch)
msg := <-ch
fmt.Println(msg)
}
A csatornák mellett más szinkronizációs mechanizmusokat is lehet használni, például a sync csomag mutexét, de a csatornákat tartják az idiomatikus módnak a kommunikációra a goroutine-ok között Go-ban.