gpt4 book ai didi

go - 向两个 channel 发送数据,第二个 channel 有时可能会先接收到数据

转载 作者:IT王子 更新时间:2023-10-29 02:09:46 27 4
gpt4 key购买 nike

package main

func m() {
c1 := make(chan int, 1)
c2 := make(chan int, 1)
go func() {
c1 <- 1
c2 <- 1
}()
select {
case <-c1:
case <-c2:
println("no way")
}
}

func main() {
for i := 0; i < 1000000; i++ {
m()
}
}

有两个 channel c1c2

我们在 goroutine 中将数据发送到 c1c2。我们有一个 select 来接收来自这两个 channel 的数据并返回。

问题是:在大多数情况下,我们首先将数据发送到c1 并首先从c1 接收。但有时我们先从 c2 接收,然后先发送到 c1。为什么?

最佳答案

关于go - 向两个 channel 发送数据,第二个 channel 有时可能会先接收到数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50553796/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com