Why does chan not deadlock in goroution?
package mainfunc main() { ch1 := make(chan int) go pump(ch1) // pump hangs}func pump(ch chan int) { ch |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
go pump() 启动了新的协程,但是 main() 主函数启动完协程就执行完毕,那么,协程里面 ch 阻塞也影响不了 main 主线程。
main 主线程运行结束,整个进程也就终止了,协程也会被清理掉。
所以,需要在 main 里面加上一个阻塞,比如: sleep, WaitGroup 来控制。 |
|
|
|
|