Junior — Middle
Wie erfolgt der Nachrichtenaustausch zwischen Sender und Empfänger von Daten in der Programmiersprache Go?
sobes.tech KI
Antwort von AI
In der Programmiersprache Go erfolgt der Nachrichtenaustausch zwischen Sender und Empfänger von Daten mithilfe von Kanälen (channels). Kanäle ermöglichen es Goroutinen, Daten sicher auszutauschen und ihre Ausführung zu synchronisieren.
Ein Kanal wird mit der Funktion make erstellt und kann gepuffert oder ungepuffert sein:
ch := make(chan int) // ungepufferter Kanal
chBuf := make(chan int, 5) // gepufferter Kanal mit Puffergröße 5
Senden in den Kanal:
ch <- 42 // sende den Wert 42 in den Kanal ch
Empfangen aus dem Kanal:
value := <-ch // erhalte den Wert aus dem Kanal ch
Beispiel für den Nachrichtenaustausch zwischen zwei Goroutinen:
package main
import (
"fmt"
"time"
)
func main() {
ch := make(chan string)
go func() {
ch <- "Hallo von der Goroutine"
}()
msg := <-ch
fmt.Println(msg)
}
Auf diese Weise gewährleisten Kanäle in Go eine sichere und bequeme Kommunikation zwischen parallelen Ausführungspfaden.