如何阻止程序/ goroutine?

Joe*_*Joe 5 go goroutine

我有一个程序可以触发两个在后台提供服务的goroutine.然后我想阻止主goroutine并让它们在后台运行.我想阻止'永远',我不关心干净的出口.我该怎么做?我可以在频道上等待,然后再也不发送任何信息.我可以在一个循环中睡觉.我觉得可能有一个block()我可以调用的更简单的功能?

我现在正在这样做

var i chan int
<-i
Run Code Online (Sandbox Code Playgroud)

nem*_*emo 5

您可以使用sync.WaitGroup传递给每个goroutine的.这是在其子女的调用goroutine中等待的常用方法.

但是,在您不关心结果的情况下,这也应该这样做:

select {}
Run Code Online (Sandbox Code Playgroud)

根据规格select:

如果没有非零通道的情况,则该语句将永久阻塞

这句话永远阻止,同时让对其他goroutines产生控制权.