34 lines
617 B
Go
34 lines
617 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"io/ioutil"
|
|
"net/http"
|
|
"sync"
|
|
)
|
|
|
|
func main() {
|
|
urls := []string{"https://golang.org/doc", "https://golang.org/pkg", "https://golang.org/help"}
|
|
|
|
client := &http.Client{Transport: &http.Transport{MaxConnsPerHost: 100}}
|
|
|
|
var wg sync.WaitGroup
|
|
for _, url := range urls {
|
|
wg.Add(1)
|
|
|
|
go func(url string) {
|
|
defer wg.Done()
|
|
resp, err := client.Get(url)
|
|
if err != nil {
|
|
fmt.Printf("%s: %s\n", url, err)
|
|
return
|
|
}
|
|
defer resp.Body.Close()
|
|
_, _ = io.Copy(ioutil.Discard, resp.Body)
|
|
fmt.Printf("%s - %d\n", url, resp.StatusCode)
|
|
}(url)
|
|
}
|
|
|
|
wg.Wait()
|
|
}
|