我有一个程序可以触发两个在后台提供服务的goroutine.然后我想阻止主goroutine并让它们在后台运行.我想阻止'永远',我不关心干净的出口.我该怎么做?我可以在频道上等待,然后再也不发送任何信息.我可以在一个循环中睡觉.我觉得可能有一个block()我可以调用的更简单的功能?
我现在正在这样做
var i chan int
<-i
Run Code Online (Sandbox Code Playgroud)
您可以使用sync.WaitGroup传递给每个goroutine的.这是在其子女的调用goroutine中等待的常用方法.
但是,在您不关心结果的情况下,这也应该这样做:
select {}
Run Code Online (Sandbox Code Playgroud)
根据规格select:
如果没有非零通道的情况,则该语句将永久阻塞
这句话永远阻止,同时让对其他goroutines产生控制权.
| 归档时间: |
|
| 查看次数: |
190 次 |
| 最近记录: |