Насколько я понимаю основной поток у меня завершается быстрее, чем отработают рутины, но не понимаю как синхронизировать.
package main
import (
"fmt"
"net/http"
"time"
)
func getResp() {
res, err := http.Get("http://ya.ru")
if err != nil {
fmt.Println(err)
}
fmt.Println(res.Status)
}
func main() {
start := time.Now()
for i := 0; i < 10; i++ {
go getResp()
}
elapsed := time.Since(start)
fmt.Println("Время выполнения ", elapsed)
}
Насколько я понимаю вся проблема это в fmt.Println(res.Status) , пробовал убрать вывод из функции и вызвать в main через анонимную -
package main
import (
"fmt"
"net/http"
"time"
)
func getResp()string {
res, err := http.Get("http://ya.ru")
if err != nil {
fmt.Println(err)
}
return res.Status
}
func main() {
start := time.Now()
for i := 0; i < 10; i++ {
go func() {fmt.Println(getResp())}()
}
elapsed := time.Since(start)
fmt.Println("Время выполнения ", elapsed)
}
Результат тот-же - время выполнения есть, а вот статусов в консоли нет. Походу нужна синхронизация, только вот как и куда не могу понять.