为了账号安全,请及时绑定邮箱和手机立即绑定

sync.WaitGroup 不等待

sync.WaitGroup 不等待

Go
慕后森 2021-10-11 10:45:33
可能是我看不到明显的东西,我做错了什么:func printSize (listOfUrls []string){    var wg sync.WaitGroup    wg.Add(len(listOfUrl))    for _, myurl := range(listOfUrls){        go func(){               body := getUrlBody(myurl)               fmt.Println(len(body))               wg.Done()           }()        }     wg.Wait()}如果我删除 wg 并继续,我会正确收到每个 url 正文的大小。如果我像上面那样做,它几乎立即打印零。getUrlBody() 有时需要几分钟的时间来执行。回答评论:我也尝试过这种方式,可以肯定的是,它表现出相同的行为。我发现错误出在 getUrlBody 和 main() 函数中...func printSize(listOfUrls []string) {    var wg sync.WaitGroup    wg.Add(len(listOfUrls))        for _, myurl := range listOfUrls {          go f(myurl, &wg)        }    wg.Wait()}func f(myurl string, wg *sync.WaitGroup) {    body := getUrlBody(myurl)    fmt.Println(len(body))    wg.Done() }
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信