小编Ida*_*dan的帖子

如何确定从渠道接收的顺序?

考虑以下来自go 之旅的示例。

如何确定频道的接收顺序?为什么 x 总是从 gorouting 获得第一个输出?这听起来很合理,但我没有找到任何关于它的文档。我尝试添加一些睡眠,但仍然从第一次执行的 gorouting 中获取输入。

    c := make(chan int)
    go sumSleep(s[:len(s)/2], c)
    go sum(s[len(s)/2:], c)
    x, y := <-c, <-c // receive from c

    fmt.Println(x, y, x+y)
Run Code Online (Sandbox Code Playgroud)

睡眠是发送到通道之前。

channel go goroutine

-2
推荐指数
1
解决办法
78
查看次数

标签 统计

channel ×1

go ×1

goroutine ×1