0
The Go Memory Modelを読むと、私はこのコードスニペットになりました。いつでも3つのゴルーチンに制限同時実行 - -select {}は何をしますか?
var limit = make(chan int, 3)
func main() {
for _, w := range work {
go func(w func()) {
limit <- 1
w()
<-limit
}(w)
}
select{}
}
私はこの機能を行うことになっているのか理解が、私は最終的select{}
が何をするのか理解していません。私はこれがすべてのgoroutinesが走り終わるまでmain
を生きておくための何らかの方法だと思っていますが、確かに言えません。
空で何が起こるかselect
?
[このプロジェクトの主なゴルーチンはいつまでも眠りますか?](https://stackoverflow.com/questions/36419054/go-projects-main-goroutine-sleep-forever/36419222#36419222) – icza
完璧、ありがとう! – LodeRunner