概述
代码如下:
package main import ( "fmt" "sync" "time" ) // 模拟执行任务 func execute(a int) { time.Sleep(time.Second * 3) fmt.Println(a) } func main() { var wg sync.WaitGroup taskCh := make(chan int, 10) for i := 0; i < 30; i++ { wg.Add(1) taskCh <- 1 //利用管道阻赛实现执行任务数量限制 go func(i int, taskCh chan int) { defer wg.Done() execute(i) <-taskCh }(i, taskCh) } wg.Wait() }
最后
以上就是岁月静好为你收集整理的golang使用管道限制协程数量的全部内容,希望文章能够帮你解决golang使用管道限制协程数量所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复