///filelist 待處理的切片
///f 具體執行的函數 --例如,遍歷filelist,拿到每一個元素,作爲參加數傳給f函數進行處理
func H_Goroutine(filelist []string,f func(s string,c chan string)) {
c := make(chan string,,len(filelist)) //防止主go提前結束
for _,v := range filelist {
go f(v,c) //do something
}
for i:=0;i<len(filelist);i++{
<-c
}
close(c)
}
//具體的執行方法(調用上面的H_Goroutine時這個方法要具體實現)
func f(s string,c chan string) {
//do something
fmt.Println(s)
c <- s //這個很重要,在做具體的事結束之後要記得寫入一個信息到chan中,作爲信息告知,這個事情已經結果
}