Wie ordnen Sie eine Reihe von Kanälen
Erstellen einer Reihe von Kanälen?
Zum Beispiel: ersetzen Sie die folgenden fünf Zeilen mit einer Reihe von Kanälen, mit einer Größe von 5:
var c0 chan int = make(chan int);
var c1 chan int = make(chan int);
var c2 chan int = make(chan int);
var c3 chan int = make(chan int);
var c4 chan int = make(chan int);
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Aussage
var chans [5]chan int
würde alloziert ein array der Größe 5, aber alle Kanäle wärenil
.Eine Möglichkeit wäre die Verwendung einer Scheibe literal:
Wenn Sie nicht möchten, wiederholen Sie selbst, würden Sie haben zu Durchlaufen und initialisiert jedes element:
chans := make([]chan int, 5)
?make(chan int)
, werden Sie standardmäßig zunil
.Ich denke, man kann gepufferten Kanälen in diesem Fall.
Kanäle können gepuffert werden. Bieten die Puffer-Länge als das zweite argument, um zu initialisieren einer gepufferten Kanal:
Sendet eine gepufferte Kanal-block nur, wenn der Puffer voll ist. Erhält blockiert, wenn der Puffer leer ist.
https://tour.golang.org/concurrency/3