channel的简单用法
package main
import (
"fmt"
"sync"
)
func main() {
wg := &sync.WaitGroup{}
dataChan := make(chan int64)
// 循环开启协程
for i := 1; i < 6; i++ {
wg.Add(1)
go func(a int64) {
dataChan <- Add(a)
wg.Done()
}(int64(i))
}
// 另一个协程来关闭
go func() {
wg.Wait()
close(dataChan)
}()
// 读channel
for x := range dataChan {
fmt.Println(x)
}
}
func Add(a int64) int64 {
return a
}
多协程执行后,用channel收集结果