小编Rac*_*hio的帖子

在多个 go 例程中之前的 Wait 返回之前,WaitGroup 被重用

我有一个带有多个 goroutine 的 go 程序。我遇到了这个错误,但我不明白为什么。这是我的代码逻辑:

主程序

for {
   ...
   go funcFile2()
}
Run Code Online (Sandbox Code Playgroud)

其中 funcFile2 在 File2.go 中定义,并在某种循环中被多次调用

文件2.go

var wg sync.WaitGroup

func func1(){
    defer wg.Done()
    return
}
func func2(){
    defer wg.Done()
    return
}
func func3(){
    defer wg.Done()
    return
}

func funcFile2(){
wg.Add(3)
go func1()
go func2()
go func3()
wg.Wait()
}
Run Code Online (Sandbox Code Playgroud)

GO版本:go1.12.7

我该如何解决?

go

1
推荐指数
1
解决办法
3131
查看次数

标签 统计

go ×1