Go select case 中为什么定时器执行频率降低?

go select case 中为什么定时器执行频率降低?

go select case 问题

在 go 编程中,select case 语句用于从多个通道接收数据。在讨论的问题中,作者使用 select case 从两个定时器中接收数据,但遇到了某个定时器执行频率较低的问题。

原因:

问题中给出的代码如下:

go func() {
    for {
        select {
        case <-ticker1.c:
            t := <-ticker1.c
            fmt.println("当前时间为=1=:", t)
        }
    }
}()

这个循环中,作者从 ticker1 中读取了两次数据:一次是 case

解决方案:

要解决此问题,可以使用以下代码:

go func() {
    for {
        select {
        case t := <-ticker1.C:
            fmt.Println("当前时间为=1=:", t)
        }
    }
}()

在这个修改后的循环中,我们只从 ticker1 中读取了一次数据(case t :=

以上就是Go select case 中为什么定时器执行频率降低?的详细内容,更多请关注硕下网其它相关文章!