golang返回多个go程数据

在主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程调用,是没问题的,两个方法都能返回各自数据。
希望哪位大神能解释下。谢谢。

阅读 2.3k
1 个回答

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

1: connection reset by peer
2: EOF

表现都为tcp连接断开

因此 res1res2 都为 <nil> .

通道接收的值也为nil

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题