可能是我看不到明显的东西,我做错了什么: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
提交
取消