【发布时间】:2019-10-24 03:11:28
【问题描述】:
我想为迭代嵌套循环添加并发性,但遇到了麻烦。这个 sync.WaitGroup 的示例用法有什么问题?
originCities := [3]string{"LED", "MOW", "PRS"}
destinationCities := [2]string{"UKT", "AAC"}
wg := &sync.WaitGroup{}
wg.Add(len(originCities) * len(destinationCities))
for _, originIata := range originCities {
for _, destinationIata := range destinationCities {
go func () {
fmt.Println(originIata)
fmt.Println(destinationIata)
wg.Done()
}()
}
}
wg.Wait()
我明白了
PRS AAC PRS AAC PRS AAC PRS AAC PRS AAC PRS AAC
所以你可能会看到它跳过了两个数组的第一个元素并只迭代最后一个元素。任何想法如何解决此行为?
【问题讨论】: