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即可. 

posted @ 2015-07-25 09:20  Kulle  Views(175)  Comments(0Edit  收藏  举报