等待所有频道接收并使用select通知完成

时间:2017-05-04 14:19:13

标签: go concurrency

我想定义一个等待未知数量的频道接收的函数,然后通知另一个名为allDone的频道关于完成。

我不确定如何以编程方式列出select个案例,一些伪代码可能如下所示:

func waitFor(channels ...chan bool, allDone chan bool) {
    for {
        select {
        case <-channels[0]:

        ...

        case <-channels[len(channels)-1]:
            allDone <- true
        }
    }
}

0 个答案:

没有答案