Go语言 使用协程实现 批量获取数据

您所在的位置:网站首页 go语言的效率 Go语言 使用协程实现 批量获取数据

Go语言 使用协程实现 批量获取数据

2023-04-08 14:33| 来源: 网络整理| 查看: 265

在 Go 语言中,可以使用协程(goroutine)实现并发操作,从而提高程序的效率。下面是使用协程实现批量获取数据的示例代码:

package main import ( "fmt" "sync" ) func main() { var wg sync.WaitGroup wg.Add(10) // 一共需要获取 10 个数据 for i := 0; i < 10; i++ { go func(i int) { // 模拟获取数据 data := getData(i) fmt.Printf("获取到数据:%v\n", data) wg.Done() }(i) } wg.Wait() fmt.Println("所有数据获取完成") } func getData(i int) int { // 模拟获取数据的耗时 for j := 0; j < 1000000000; j++ { } return i }

上面的代码中,我们使用了 sync.WaitGroup 来等待所有的协程执行完成。在循环中,我们使用了 go 关键字来启动一个协程,然后在协程中获取数据,并使用 wg.Done() 来通知 WaitGroup 已经完成了一个任务。

运行上面的代码,可以看到输出结果如下:

获取到数据:0 获取到数据:2 获取到数据:3 获取到数据:4 获取到数据:1 获取到数据:6 获取到数据:5 获取到数据:8 获取到数据:7 获取到数据:9 所有数据获取完成

可以看到,所有的数据都是在不同的协程中获取的,而且获取数据的顺序是不确定的,这也说明了使用协程可以提高程序的并发性和效率。

如果本文对你有帮助,别忘记给我个3连 ,点赞,转发,评论。

咱们下期见!!!

收藏 等于白嫖,点赞才是真情。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3