package main import ( "fmt" "http" "os" ) func fetch(url string, idx, num int, ch chan int) { buf := make([]byte, 1<<14) i := 0 for ; i < num; i++ { resp, _, err := http.Get(url) if err != nil { break } _, err = resp.Body.Read(buf) resp.Body.Close() if err != nil { break } } ch <- i } func main() { ch := make(chan int) n := 20 for i := 0; i < n; i++ { go fetch("http://www.yahoo.com", i, 100, ch) } sum := 0 for i := 0; i < n; i++ { sum += <-ch fmt.Println(sum, "opened") _, err := os.Open("main.go") if err != nil { fmt.Println(err) } } _, _, err := http.Get("http://www.google.com") if err != nil { fmt.Println(err) } }