根据控制通道的缓存大小来控制并发的goroutine的最大数目 ```go package main import ( "fmt" "sync" "time" ) func main() { var wg sync.WaitGroup var limit = make(chan int, 3) var works []func() for i := 0; i < 100; i++ { works = append(works, func() { fmt.Println("hi") }) } for _, w := range works { work := w wg.Add(1) go func() { defer wg.Done() limit <- 1 work() time.Sleep(time.Second) <-limit }() } wg.Wait() } ```

相关推荐

双尔:反手回一个很抱歉,经过慎重考虑,您与我的预期暂不匹配,感谢您的投递
点赞 评论 收藏
分享
10-29 15:51
嘉应学院 Java
后端转测开第一人:你把简历的学历改成北京交通大学 去海投1000份发现基本还是没面试
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务