基本原理
使用 channel 传递主线程与 协程之间的通信,然后通过判断协程是否执行完毕而后结束主线程
func runGetInfo(s string){
// do something
ch <- 1
}
var n int = 0
var s int = 0
ch := make(chan int, 2)
for site:= range sites{
go runGetInfo(site, ch)
}
fmt.Println(len(sites))
for {
n = <- ch
s ++
if s == len(sites) {
close(ch)
break
}
fmt.Println("s == ", s, n)}