golang 的time.Tick 会等到里面的任务结束了,才开始.
如 ticK 是1s, 里面的任务是3s, 并不是严格按没过了一秒就执行for里面的代码,二是会等到for里面的任务结束后再开始执行。是 block的
package main import ( "log" "time" ) func main() { for range time.Tick(time.Second * 1) { log.Println("in---") time.Sleep(time.Second * 3) } }