【问题标题】:What does select{} do? [duplicate]select{} 有什么作用? [复制]
【发布时间】:2017-07-04 15:42:05
【问题描述】:

阅读The Go Memory Model,我爱上了这个代码sn-p。

var limit = make(chan int, 3)

func main() {
    for _, w := range work {
        go func(w func()) {
            limit <- 1
            w()
            <-limit
        }(w)
    }
    select{}
}

我理解这个函数应该做什么——在任何时候将并发限制为 3 个 goroutine——但我不明白最终的 select{} 做了什么。我希望这是让main 在所有goroutines 完成运行之前保持活力的某种方式,但我不能确定。

一个空的select会发生什么?

【问题讨论】:

标签: select go concurrency


【解决方案1】:

一般情况下,select{} 用于无限循环。

【讨论】:

    猜你喜欢
    • 2013-07-24
    • 2015-05-03
    • 1970-01-01
    • 2013-07-08
    • 2010-10-27
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    相关资源
    最近更新 更多