美文网首页
限制协程执行数量的基本方法

限制协程执行数量的基本方法

作者: 我爱张智容 | 来源:发表于2023-01-17 17:49 被阅读0次

func job(i int) {
    fmt.Println(i)
    time.Sleep(time.Second)
}

func main() {
    maxNum := 10

    pool := make(chan struct{}, maxNum) // 协程池

    wg := sync.WaitGroup{}
    for i := 0; i < 100; i++ {
        pool <- struct{}{}
        wg.Add(1)
        go func(i int) {
            defer wg.Done()
            defer func() {
                <-pool
            }()

            job(i)
        }(i)
    }

}

相关文章

  • 限制协程使用数量

    不限制的时候,有多少业务开多少协程 限制协程 或者 结果就变成分批打印了,达到限制的效果

  • async/await协程语法

    协程函数(异步函数)使用async关键词将其变成协程方法 执行协程 协程函数执行结束时会抛出一个StopItera...

  • Python 协程使用心得

    基本概念 协程:又称微线程,纤程。英文名Coroutine。协程是一种子程序,它在执行过程中可以中断,然后转而执行...

  • swoole协程之channel

    通过swoole协程入门,了解到协程的基本写法。说的具体一点,是独立、无执行顺序的任务。那有依赖关系或者执行顺序有...

  • 协程.md

    协程协程中使用suspend修饰方法,代表该方法可在协程中挂起。但并不是协程方法必须使用suspend修饰协程和线...

  • 协程

    gevent方法实现多任务(协程) 了解yield和grenlet yield方法创建协程 greenlet方法创建协程

  • go channel详解

    协程,通道 我们在普通程序中要执行代码如下代码 错误使用协程 由于没有调度,主协程率先执行完毕,代码执行已经关闭,...

  • greenlet和gevent的简单使用

    greenlet模块内部使用了协程的概念,在单线程内,我们需手动调用switch切换协程,使用方法如下 执行结果 ...

  • 协程(三)IEnumerable、IEnumerator、for

    协程(一)基本使用协程(二)协程什么时候调用协程(三)IEnumerable、IEnumerator、foreac...

  • 协程(五)简单模拟协程

    协程(一)基本使用协程(二)协程什么时候调用协程(三)IEnumerable、IEnumerator、foreac...

网友评论

      本文标题:限制协程执行数量的基本方法

      本文链接:https://www.haomeiwen.com/subject/gmbocdtx.html