【发布时间】:2020-09-07 22:25:18
【问题描述】:
我正在运行 goroutine 和它的通道我仍然得到错误
package main
import (
"fmt"
"sync"
"time"
)
func foo(c chan int, wg *sync.WaitGroup) {
c <- 45
time.Sleep(time.Second * 4)
c <- 122
wg.Done()
}
func main() {
canal := make(chan int)
var wg sync.WaitGroup
wg.Add(2)
go foo(canal,&wg)
go foo(canal,&wg)
wg.Wait()
for a := range canal {
fmt.Println(a)
}
}
【问题讨论】:
-
不一样的问题....
-
@dılosürücü,它是:一些发送到通道的 goroutine,调用 goroutine 在遍历通道之前调用 WaitGroup.Wait。其他一切都是不会改变问题(或其解决方案)的细节。
标签: go