在go里面执行N次并发请求是非常简单的,比如并发执行100次请求,就启100个协程就好了

func main()  {
	i := 0
	wg := &sync.WaitGroup{}
	for i < 10 {
		wg.Add(1)  // 放在循环里面,就+1,放在循环外面,要执行多少次计算就加几,比如在for外面:wg.Add(10)是一样的效果
		url := "https://www.baidu.com"
		go func(url string) {
			resp, _ := http.Get(url)
			defer resp.Body.Close()
			data, _ := ioutil.ReadAll(resp.Body)
			
			wg.Done() // 执行完就减一次计数器
		}(url)
		i++
	}
	wg.Wait()  // 阻塞住,等待所有协程执行完毕时释放
	fmt.Println("end")
}

PS:Add有多少次计数,Done就要执行多少次,否则Wait会一直等待!!