相关疑难解决方法(0)

Golang超时不与通道一起执行

我正在使用 goroutine/channels。这是我的代码。为什么超时情况没有得到执行?

func main() {
    c1 := make(chan int, 1)

    go func() {
        for {
            time.Sleep(1500 * time.Millisecond)
            c1 <- 10
        }
    }()

    go func() {
        for {
            select {
            case i := <-c1:
                fmt.Println(i)
            case <-time.After(2000 * time.Millisecond):
                fmt.Println("TIMEOUT") // <-- Not Executed
            }
        }
    }()

    fmt.Scanln()
}
Run Code Online (Sandbox Code Playgroud)

timeout channel go

3
推荐指数
1
解决办法
1217
查看次数

标签 统计

channel ×1

go ×1

timeout ×1