题目来源:
答案:sunrise
// 利用 channel 的缓存区实现
func main() {
var wg sync.WaitGroup
ch := make(chan struct{}, 3)
for i := 0; i < 10; i++ {
ch <- struct{}{}
wg.Add(1)
go func(i int) {
defer wg.Done()
log.Println(i)
time.Sleep(time.Second)
<-ch
}(i)
}
wg.Wait()
}
本文来自投稿,不代表本站立场,如若转载,请注明出处: