3

我找不到在 golang 中创建一块缓冲通道的方法。我知道如何创建如下给出的无缓冲通道切片

type ch chan int
channels := make([]ch,5)
4

1 回答 1

12

该语句channels := make([]ch,5)只是分配容器(长度为 5 的通道切片)。除此之外,您必须单独初始化每个通道,这是您将它们声明为缓冲而不是无缓冲的时候。所以扩展你的例子只是这样做:

for i, _ := range channels {
     channels[i] = make(chan int, BufferSize)
}
于 2016-06-07T22:57:12.587 回答