Go具有一种机制,可以从几个通道之一的select语句中进行阻塞读取。所以你可以说select { case <- c1: case <- c2:}将阻塞,直到我们从这两个通道中的任何一个获得输入。非常好。但这要求我在源代码中指定要轮询的通道数。如果我有一个通道的一部分或数组,并且想在获得任何通道的输入之前都想阻塞,该怎么办?
3 回答
潇潇雨雨
TA贡献1833条经验 获得超4个赞
只是想一想,但您可以使用多路复用模式,在该模式中产生一个带有2个通道的goroutine,该通道在两个通道上均阻塞,然后将输出发送到新通道。然后,您可以从列表中动态构建这些树,将所有内容集中到单个通道,然后继续阅读。
- 3 回答
- 0 关注
- 174 浏览
添加回答
举报
0/150
提交
取消