0
閱讀The Go Memory Model,我倒在這個代碼片段。select {}做了什麼?
var limit = make(chan int, 3)
func main() {
for _, w := range work {
go func(w func()) {
limit <- 1
w()
<-limit
}(w)
}
select{}
}
我明白這是什麼功能是應該做的 - 限制併發至3個夠程在任何時間 - 但我不明白,最終select{}
做什麼。我希望這是一種保持main
有效的方法,直到所有的goroutines都運行完畢,但我無法確定地說。
在空的select
中會發生什麼?
看看這個問題:[Go project's main goroutine sleep forever?](https://stackoverflow.com/questions/36419054/go-projects-main-goroutine-sleep-forever/36419222#36419222) – icza
完美,謝謝! – LodeRunner