为了账号安全,请及时绑定邮箱和手机立即绑定

Why does chan not deadlock in goroution?

Why does chan not deadlock in goroution?

Go
鱼右 2018-06-08 09:29:26
package main func main() {     ch1 := make(chan int)         go pump(ch1) // pump hangs} func pump(ch chan int) {       ch <- 1       ch <- 2 }
查看完整描述

1 回答

?
一凡

TA贡献43条经验 获得超8个赞

go pump() 启动了新的协程,但是 main() 主函数启动完协程就执行完毕,那么,协程里面 ch 阻塞也影响不了 main 主线程。

main 主线程运行结束,整个进程也就终止了,协程也会被清理掉。

所以,需要在 main 里面加上一个阻塞,比如: sleep, WaitGroup 来控制。

查看完整回答
反对 回复 2018-08-22
  • 1 回答
  • 0 关注
  • 970 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信