在goroutine 写入channel,为何还要在goroutine关闭才能遍历

delaywu · · 1213 次点击
fenglangjuxu
出售域名 http://letsgo.xin
关注
#2
更多评论
delaywu
Golang在路上...
我自己想应该是使用 ``` wg.Wait() close(ret) ``` 阻碍的主线程,但是同时遍历是发生在主线程上。这时候定义的channel是无缓存的,这时候没办法发现这个无缓冲的channel又被消费的可能,故而会发生异常。这时候使用 协程的话,由于不堵塞。使得 channel消费成为的可能。 ``` go func() { defer close(ret) wg.Wait() }() ```
#1
啥也不是,就是基础没学好
#3