为什么这里再开一个goroutine发送done就不会卡主呢?
来源:11-2 使用Channel等待任务结束

慕仙9964762
2018-04-21
为什么这里再开一个goroutine发送done就不会卡主呢?
写回答
1回答
-
ccmouse
2018-04-22
因为开一个goroutine,这里的go语句开完goroutine后会立刻返回,运行下一句语句。那么在goroutine里面发送done的时候会卡住,但是是卡在我们新开的goroutine里面,而不是main(go语言的main函数也运行在goroutine里面)里面。
当我们又运行到这里,我们会再开第二个goroutine,同样也是发送done。这样大家都不卡住。当然,代价是如果接收方慢的话会goroutine越开越多。
032020-04-26
相似问题