golang返回多个go程数据

发布于 2022-09-11 21:28:10 字数 807 浏览 22 评论 0

在主go程中分别启动两个go程调用各自方法,但返回不了数据

    ctx := context.Background()

    Chan1 := make(chan *FundInfo.StructFundInfo)
    Chan2 := make(chan *FundInfo.StructFundTradeLimit)
    
    go func() {
        res1, err1 :=  client.GetFundInfo(ctx, fundcode)
        fmt.Println("1111111111:", err1)
        Chan1 <- res1
    }()

    go func() {
        res2, err2 :=  client.GetFundTradeLimitInfo(ctx, fundcode)    
        fmt.Println("2222222222:", err2)
        Chan2 <- res2
    }()

    value1 := <- Chan1
    value2 := <- Chan2
    log.Println("1111111111111111111", value1)  
    log.Println("2222222222222222222", value2)

返回结果如下:
图片描述
而当一个方法普通调用,一个启动go程调用,是没问题的,两个方法都能返回各自数据。
希望哪位大神能解释下。谢谢。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤单情人 2022-09-18 21:28:10

看到你这里是第一个 go 和 第二个 go 都返回了 错误.

1: connection reset by peer
2: EOF

表现都为tcp连接断开

因此 res1res2 都为 <nil> .

通道接收的值也为nil

发生错误的原因在于连接断开没有返回数据,请在这里多多debug查找。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文