2016-06-07 32 views
1

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

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

切片的类型不会确定它是否被缓冲;这是在你制作频道时确定的。 –

回答

7

此语句channels := make([]ch,5)被简单地分配所述容器(其具有长度为5信道的切片)无缓冲通道的切片。除此之外,您必须逐个初始化每个通道,这是您将其声明为缓冲而不是无缓冲的时间。因此,扩展您的示例只需执行以下操作:

for i, _ := range channels { 
    channels[i] = make(chan int, BufferSize) 
}