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