文章预览
errgroup 是 Go 官方库 x 中提供的一个非常实用的工具,用于并发执行多个 goroutine,并且方便的处理错误。 我们知道,Go 标准库中有个 sync.WaitGroup 可以用来并发执行多个 goroutine, errgroup 就是在其基础上实现了 errgroup.Group 。不过, errgroup.Group 和 sync.WaitGroup 在功能上是有区别的,尽管它们都用于管理 goroutine 的同步。 errgroup 优势 与 sync.WaitGroup 相比,以下是设计 errgroup.Group 的原因和优势: 错误处理 : sync.WaitGroup 只负责等待 goroutine 完成,不处理 goroutine 的返回值或错误。 errgroup.Group 虽然目前也不能直接处理 goroutine 的返回值,但在 goroutine 返回错误时,可以立即取消其他正在运行的 goroutine,并在 Wait 方法中返回第一个非 nil 的错误。 上下文取消 : errgroup 可以与 context.Context 配合使用,支持在某个 goroutine 出现错误时自动取消其他 gorou
………………………………