我正在使用time.Ticker一些阻塞代码,发现一个奇怪的行为:
func main() {
ticker := time.NewTicker(1 * time.Second)
i := 0
for {
select {
case <-ticker.C:
log.Println(i)
if i == 0 {
time.Sleep(5 * time.Second) // simulate the blocking
}
i++
}
}
}
示例输出:
2022/02/20 10:49:45 0
2022/02/20 10:49:50 1 <- shows at same time
2022/02/20 10:49:50 2 <- shows at same time
2022/02/20 10:49:51 3
2022/02/20 10:49:52 4
2022/02/20 10:49:53 5
...
“1”和“2”总是同时显示,这是为什么呢?
动漫人物
慕的地8271018
相关分类