Einführung
Dieses Labor zielt darauf ab, Ihr Verständnis von Pufferschannels in Golang zu testen.
This tutorial is from open-source community. Access the source code
💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken
Dieses Labor zielt darauf ab, Ihr Verständnis von Pufferschannels in Golang zu testen.
Standardmäßig sind Kanäle in Golang unpuffernd, was bedeutet, dass sie nur Sendevorgänge (chan <-
) akzeptieren, wenn es einen entsprechenden Empfang (<- chan
) gibt, der bereit ist, den gesendeten Wert zu empfangen. Puffernde Kanäle akzeptieren jedoch eine begrenzte Anzahl von Werten ohne einen entsprechenden Empfänger für diese Werte. In diesem Labor müssen Sie einen puffernden Kanal erstellen und Werte in den Kanal senden, ohne dass ein entsprechender paralleler Empfang erfolgt.
$ go run channel-buffering.go
puffernd
Kanal
Hier ist der vollständige Code:
// Standardmäßig sind Kanäle _unpuffernd_, was bedeutet, dass sie
// nur Sendevorgänge (`chan <-`) akzeptieren, wenn es einen
// entsprechenden Empfang (`<- chan`) gibt, der bereit ist, den
// gesendeten Wert zu empfangen. _Puffernde Kanäle_ akzeptieren
// eine begrenzte Anzahl von Werten ohne einen entsprechenden
// Empfänger für diese Werte.
package main
import "fmt"
func main() {
// Hier `make` wir einen Kanal vom Typ string, der bis zu
// 2 Werte puffernd speichert.
messages := make(chan string, 2)
// Da dieser Kanal puffernd ist, können wir diese
// Werte in den Kanal senden, ohne dass ein entsprechender
// paralleler Empfang erfolgt.
messages <- "puffernd"
messages <- "Kanal"
// Später können wir diese beiden Werte wie üblich empfangen.
fmt.Println(<-messages)
fmt.Println(<-messages)
}
In diesem Labor haben Sie gelernt, wie Sie in Golang einen puffernden Kanal erstellen und Werte in den Kanal senden, ohne dass ein entsprechender paralleler Empfang erfolgt. Dies ist nützlich in Szenarien, in denen Sie Werte an einen Kanal senden möchten, ohne den Sender zu blockieren.