ticker的间隔
ticker的间隔会随着ticker触发的代码而延长
package main import ( "log" "time" ) var count int func main() { ticker := time.NewTicker(time.Second * 1) for _ = range ticker.C { count++ log.Println(count, " ticker") work_long() } } func work_long() { time.Sleep(time.Second * 5) count++ log.Println(count, " work_long") }
如果想ticker按照固定的间隔来执行, 那么ticker触发的代码必须使用新的goroutine, 否则ticker的间隔会被延长.
如果你的工作只想不间断执行, 那么就继续使用原来的goroutine即可.