go select case 问题?
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)
}
}()
如代码所示目的都是像间隔3s执行一次但是实际执行的时候 1 执行一次要比 2 间隔更久因为最近在弄一个线上项目 这个周期本来是设定10s的最后变成了 一分多钟才执行一次好奇是什么问题导致的?
回复
1个回答
test
2024-06-25
1 读了两次,是两个周期。
可以直接写 case t := <-ticker1.C
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容