【发布时间】:2015-12-21 11:52:18
【问题描述】:
我遇到了一种情况,我想跟踪一些 goroutine 以在特定点上同步,例如当所有 url 都被获取时。然后,我们可以将它们全部放置并按特定顺序显示。
我认为这是障碍进来的。它在go 和sync.WaitGroup 中。但是,在实际情况下,我们不能确保所有的 fetch 操作都会在短时间内成功。所以,我想在wait 为获取操作引入超时。
我是Golang的新手,谁能给我一些建议?
我要找的是这样的:
wg := &sync.WaigGroup{}
select {
case <-wg.Wait():
// All done!
case <-time.After(500 * time.Millisecond):
// Hit timeout.
}
我知道Wait 不支持Channel。
【问题讨论】:
-
您能否发布您如何添加等待组之类的内容,例如您是通过循环还是这样做??