Golang 协程异步请求

December 28, 2020

这篇文章介绍了如何在Go语言中使用协程进行异步请求。文章首先解释了协程是Go语言中的轻量级线程实现,由Go运行时管理。然后,通过一个示例展示了如何使用sync.WaitGroup来同步多个协程。示例中,我们创建了两个协程,每个协程都会调用getData()函数并将结果存储在rel映射中。最后,我们等待所有协程完成,然后打印rel映射的内容。运行结果显示,两个协程都成功地获取了数据并存储在rel映射中。

Demo

package main

import (
	"fmt"
	"sync"
)

func main() {
	var gp sync.WaitGroup
	rel := make(map[string]interface{})
	gp.Add(2)
	go func(g *sync.WaitGroup) {
		defer g.Done()

		rel["demo1"] = getData()
	}(&gp)

	go func(g *sync.WaitGroup) {
		defer g.Done()

		rel["demo2"] = getData()
	}(&gp)
  
	gp.Wait()
  
	fmt.Println(rel)
}

func getData() string {
	return "test"
}

响应结果

map[demo1:test demo2:test]
Go异步请求

IARNO

服务端开发

Go grpc案例

centos7安装Postgresql