栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

是否可以将多个通道复用为一个?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

是否可以将多个通道复用为一个?

我相信这段代码可以满足您的需求。我已经更改了签名,以便清楚地知道输入和输出仅应用于一个方向的通信。请注意,添加了一个

sync.WaitGroup
,您需要某种方式让所有输入信号表示它们已完成,这很容易。

func combine(inputs []<-chan int, output chan<- int) {  var group sync.WaitGroup  for i := range inputs {    group.Add(1)    go func(input <-chan int) {      for val := range input {        output <- val      }      group.Done()    } (inputs[i])  }  go func() {    group.Wait()    close(output)  } ()}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/484307.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号