我是新来的golang。我编写了并行请求代码,但有时会等待很长时间。你知道什么原因吗
var wg sync.WaitGroup
guard := make(chan struct{}, 50)
for _, li := range results {
wg.Add(1)
guard <- struct{}{}
go func(){
defer func(){//I'm afraid some panic, so I use defer func, make sure it has done.
wg.Done()
<-guard
}()
//some biz code
//http requests
}()
}
wg.Wait()
我尝试打印进程号,观察者号,总是长时间卡住最后一个进程。我不知道卡住的原因。它可以完成,只是在最后一个过程中停留了很长时间。