写了个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 协议》,转载必须注明作者和本文链接
有很多更成熟的工具的呀,比如go-zero 中的 fx工具:github.com/tal-tech/go-zero/tree/m...
这个库在爬虫场景特别好用,防止并发太多导致网站拉黑ip
github.com/panjf2000/ants