如何使用 sync/errgroup 包在 Go 中编写并发 for 循环

我想同时对切片的元素执行操作
我正在使用sync/errgroup包来处理并发

这是 Go Playground 上的最小复制https://go.dev/play/p/yBCiy8UW_80


桃花长相依
浏览 134回答 1
1回答

千巷猫影

import (    "fmt"    "golang.org/x/sync/errgroup")func main() {    eg := errgroup.Group{}    input := []int{0, 1, 2}    output1 := []int{}    output2 := make([]int, len(input))    for i, n := range input {        eg.Go(func() (err error) {            output1 = append(output1, n+1)            output2[i] = n + 1            return nil        })    }    eg.Wait()    fmt.Printf("with append %+v", output1)    fmt.Println()    fmt.Printf("with make %+v", output2)}产出with append [3 3 3]with make [0 0 3]与预期相比[1 2 3]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go