Go 并发编程基础(一)goroutine,channel
发布时间:2023-03-08 编辑:jiaochengji.com
教程集为您提供Go 并发编程基础(一)goroutine,channel等资源,欢迎您收藏本站,我们将为您提供最新的Go 并发编程基础(一)goroutine,channel资源
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)
}
您可能感兴趣的文章:
golang goroutine 通知_深入golang之---goroutine并发控制与通信
【文末有惊喜!】一文读懂golang channel
22Go常见的并发模式和并发模型
golang基础教程
图解 Go 并发编程
go channel 缓冲区最大限制_Golang 入门 : channel(通道)
Go语言基础(3)
golang 切片截取 内存泄露_怎么看待Goroutine 泄露
Go并发模式:管道和取消
Go 语言为什么这么快,带你详细了解Golang CSP并发模型
[关闭]