教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 Go 并发编程基础(一)goroutine,channel

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并发模型

[关闭]
~ ~