(一)goroutine
package _case
import "fmt"
// sum 函数计算整数切片 values 的总和,并将结果发送到 resultChan 通道中
func sum(values []int, resultChan chan int) {
sum := 0
for _, value := range values {
sum += value
}
resultChan <- sum // 将计算结果发送到 channel 中
}
// ParacalcCase 函数演示并发计算,将整数切片分为两部分,并使用两个 goroutine 计算总和
func ParacalcCase() {
values := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
resultChan := make(chan int, 2) // 创建一个缓冲大小为 2 的整数通道
go sum(values[:len(values)/2], resultChan) // 启动一个 goroutine 计算切片的前半部分总和
go sum(values[len(values)/2:], resultChan) // 启动一个 goroutine 计算切片的后半部分总和
sum1, sum2 := <-resultChan, <-resultChan // 从通道中接收两个计算结果
fmt.Println("Result:", sum1, sum2, sum1+sum2) // 打印计算的结果
} // paracalcCase
在这段代码中,实现了并发计算的功能。主要内容如下:
-
定义函数
sum