goroutine创建频道时的行为方式

时间:2019-06-11 22:49:19

标签: go

假设我有一个创建goroutine的函数,并且在该goroutine中创建了一个通道。我的问题是,当我们创建N个go例程时,会创建N个单独的通道吗?

此处为示例代码:

func createAChannel() {

  // make a channel

}
func main() {
  for i := 0; i < 10; i++ {
  go createAChannel()}

}

1 个答案:

答案 0 :(得分:0)

是的,每次您使用make创建频道时,都会获得一个新频道。

如果要让多个goroutine共享一个通道,则必须在父goroutine中创建该通道并将其传递给子goroutine。