写了个go工具,用于并行运行协程,欢迎 star,哦不对,是求 star

Parallel

golang 协程并行库,可以指定并发数量

安装 - installation

go get github.com/qbhy/parallel

使用 - usage

package tests

import (
    "errors"
    "fmt"
    "github.com/qbhy/parallel"
    "testing"
)

func TestParallel(t *testing.T) {
    // 最多 10 个协程同时运行
    p := parallel.NewParallel(10)

    p.Add(func() interface{} {
        return "执行了"
    })

    p.Add(func() interface{} {
        panic(errors.New("报错了"))
    })

    fmt.Println(p.Wait())
    //会输出 map[0:执行了 1:报错了]
}

也可以参考 tests/parallel_test.go 的代码

github.com/qbhy/parallel
qbhy0715@qq.com

本作品采用《CC 协议》,转载必须注明作者和本文链接
qbhy
讨论数量: 3

有很多更成熟的工具的呀,比如go-zero 中的 fx工具:github.com/tal-tech/go-zero/tree/m...

2年前 评论
qbhy (楼主) 2年前
qbhy

这个库在爬虫场景特别好用,防止并发太多导致网站拉黑ip

2年前 评论
hezhizheng
2年前 评论
qbhy (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!