package main
import (
"fmt"
)
func sum(values []int, resultChan chan int) {
sum := 0
for _, value := range values {
sum += value
}
resultChan <- sum //将运算结果写到channel中
}
func main() {
values := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} //定义并初始化了一个大小为10的数字数组
resultChan := make(chan int, 2) //定义大小为2的channel
go sum(values[:len(values)/2], resultChan) //开启协程1 计算数组后半部分的和,并将结果写到channel中堵塞
go sum(values[len(values)/2:], resultChan) //开启协程2 计算数组前半部分的和,并将结果写到channel中堵塞
sum1, sum2 := <-resultChan, <-resultChan //将chennel中堵塞的数据读出
fmt.Println("Result:", sum1, sum2, sum1+sum2)
}
有疑问加站长微信联系(非本文作者)