代码如下:
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使用管道限制协程数量内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复