【发布时间】:2017-06-24 10:06:30
【问题描述】:
我收到“致命错误:所有 goroutine 都在休眠 - 死锁! “出于某种原因,在下面的代码中。我正在使用应该是非阻塞的缓冲通道。不知道我做错了什么
package main
import (
"fmt"
"sync"
)
func main() {
c := make(chan int, 2)
var wg sync.WaitGroup
wg.Add(2)
go doSomething(c, wg)
go doSomething(c, wg)
go doSomething(c, wg)
wg.Wait()
close(c)
for v := range c {
fmt.Print(v)
}
}
func doSomething(c chan<- int, wg sync.WaitGroup) {
defer wg.Done()
c <- 1
}
【问题讨论】:
标签: go