> 由於上個版本由於關閉channel太low了,這是給到優雅版本 僅供參考
func job(index int) int {
time.Sleep(time.Millisecond*500)
return index
}
func main() {
num:=5
result:=make(chan int)
wg:=sync.WaitGroup{}
for i:=0;i<num;i++{
wg.Add(1)
go func(index int) {
defer wg.Done()
result<-job(index)
}(i)
}
go func() {
defer close(result)
wg.Wait()
}()
for item:=range result{
fmt.Println(item)
}
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結