запросов на сервер, открывается 2 порта, а при создании 3х аналогичных горутин - over10k. Использую дефолтный http.client и создаю его непосредственно в самом начале горутины
wg := &sync.WaitGroup{}
for i := 0; i < 2; i++ {
wg.Add(1)
go func(i int) {
client := &http.Client{}
defer wg.Done()
for j := 0; j < 10000; j++ {
req, err := http.NewRequest("GET",fmt.Sprintf("http://localhost:9000/%d", j),nil)
if err != nil {
log.Fatal(err)
return
}
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
ioutil.ReadAll(resp.Body)
}
}(i)
}
wg.Wait()
Кто-нибудь знает?)
когда в функции в цикле делаешь defer, то он выполнится лишь после окончания работы функции
if err != nil { log.Fatal(err) } defer resp.Body.Close() может трабл тут? ты фаталишь но не закрываешь канал
Обсуждают сегодня