请问《cloud.native.go》这段代码中goroutine为什么是run forever

ximen · · 879 次点击
谢谢你的回答。 1 堵塞是为了goroutine不会被回收是吧? 2 这个看着不像是死循环啊 ? for d := range msgs { log.Printf("Received a message: %s", d.Body) }
#2
更多评论
forever 是一个无缓冲 channel,只是从里面取值,没有给它发送值,会一直堵塞。另外一个 goroutine 是一个死循环,所以一直运行
#1
1. 是的,程序结束的时候,goroutine会被回收 2. msgs也是一个unbuffered channel, range channel会一直运行,直到channel关闭
#3