//分段并行计算和
package main
func count(arr []int) int {
sum := 0
for _, item := range arr {
sum += item
}
return sum
}
func main() {
ch := make(chan int, 3)
flag := make(chan struct{})
for i:=0; i < 3; i++ {
go func() {
ch <- count([]int{1, 2, 3, 4, 5})
if len(ch) == 3 {
flag <- struct{}{}
}
}()
}
select {
case <- flag:
println(count([]int{<-ch, <-ch, <-ch}))
}
}