您的位置 首页 编程知识

Go Select Case中如何保证每3秒运行一次特定任务?

go select case 疑问 在以下代码中,问题是如何实现每 3 秒运行一次特定任务。 ticker1 …

Go Select Case中如何保证每3秒运行一次特定任务?

go select case 疑问

在以下代码中,问题是如何实现每 3 秒运行一次特定任务。

    ticker1 := time.newticker(3 * time.second)     ticker2 := time.newticker(3 * time.second)     fmt.println("当前时间为:", time.now())     go func() {         for {             select {             case <-ticker1.c:                 t := <-ticker1.c                 fmt.println("当前时间为=1=:", t)             }         }     }()     go func() {         for {             t := <-ticker2.c             fmt.println("当前时间为=2=:", t)         }     }()
登录后复制

该代码中的问题是,在第一个 goroutine 中,从计时器读取数据时,它将读取两条消息:第一条是预期消息(使用

为了解决此问题,可以只读取一次计时器数据:

case t := <-ticker1.C: // 直接这里读取
登录后复制

以上就是Go Select Case中如何保证每3秒运行一次特定任务?的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表四平甲倪网络网站制作专家立场,转载请注明出处:http://www.elephantgpt.cn/3616.html

作者: nijia

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

18844404989

在线咨询: QQ交谈

邮箱: 641522856@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部