Go语言并发执行函数并整合返回值:使用goroutine和channel

本文将使用Go语言的goroutine和channel来实现10个并发执行函数并整合返回数据的操作。

代码示例:

package main

import "fmt"

func goFuncA(ag int) string {
    return fmt.Sprintf('result of goFuncA(%d)', ag)
}

func main() {
    results := make(chan string, 10)
    for i := 0; i < 10; i++ {
        go func(i int) {
            result := goFuncA(i)
            results <- result
        }(i)
    }

    for i := 0; i < 10; i++ {
        fmt.Println(<-results)
    }
}

代码解析:

  1. 定义函数 goFuncA

    • goFuncA 函数接收一个 int 类型的参数 ag,并返回一个 string 类型的结果。
  2. 创建 channel results

    • results 是一个带缓冲区的 channel,缓冲区大小为 10,用于存储函数执行的结果。
  3. 开启 10 个 goroutine

    • 使用 for 循环开启 10 个 goroutine,每个 goroutine 执行 goFuncA 函数,并将结果通过 results channel 传递回来。
  4. 读取 channel 并打印结果

    • 使用 for 循环从 results channel 中读取结果,并使用 fmt.Println 打印出来。

总结:

通过上述代码,我们成功地使用 goroutine 和 channel 实现并发执行函数并整合返回数据的操作。goroutine 使得函数能够并发执行,channel 则用于不同 goroutine 之间的通信,实现数据共享。这使得程序能够更有效地利用系统资源,提高程序效率。

Go语言并发执行函数并整合返回值:使用goroutine和channel

原文地址: https://www.cveoy.top/t/topic/l4zV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录