【发布时间】:2019-06-25 17:25:01
【问题描述】:
我在函数中使用 goroutine,因为我希望函数何时启动,然后数据库的查询也在那个时间运行。但是我问了一个问题,我们可以在另一个 goroutine 中实现一个 goroutine,因为在函数中我已经设置了一个 goroutine,但是在那个 goroutine 中有更多查询,我希望它们在父 goroutine 时也运行开始。示例
func main(){
wg := &sync.WaitGroup{}
wg.Add(1)
go func(){
defer wg.Done()
Id,err := QueryWhichWillReturnId()
if err == nil{
wg.Add(1)
go func(){
defer wg.Done()
data:= GetAnyDataById(Id)
fmt.Println(data)
}()
}
}()
wg.Wait()
}
上面的例子在实现 goroutine 时是否可行?
任何建议将不胜感激。
【问题讨论】:
-
除了奇怪的格式,代码对我来说看起来不错。你只需要在某个地方打电话给
wg.Wait()。 -
@RolandIllig 是的,但这是一个我表示感谢的例子
-
是的,您可以,您是在尝试时遇到了问题,还是没有实际尝试?