GO教程
GO控制语句
GO高级

Go Tickers

Go Tickers

Go Tickers 用于当我们想要定期进行一些工作时。可以使用 Stop() 方法像计时器一样停止 Ticker。
NewTicker() 方法返回一个新的 Ticker,它有一个根据持续时间参数发送时间的通道。持续时间必须大于零,否则,股票代码会崩溃。
Tick() 是 NewTicker 的包装器,它提供了对报价通道的访问。 Tick() 方法对于不想关闭 Ticker 的客户很有用。

Go Tickers Example

package main
import "time"
import "fmt"
func main() {
    tickerValue := time.NewTicker(time.Millisecond * 100)
    go func() {
        for t := range tickerValue.C {
            fmt.Println("Tick at", t)
        }
    }()
    time.Sleep(time.Millisecond * 500)
    tickerValue.Stop()
    fmt.Println("Ticker stopped")
}
输出:
Tick at 2017-10-07 17:26:35.946279716 +0530 IST m=+0.101345812
Tick at 2017-10-07 17:26:36.046371811 +0530 IST m=+0.201437907
Tick at 2017-10-07 17:26:36.146417657 +0530 IST m=+0.301483753
Tick at 2017-10-07 17:26:36.24851386 +0530 IST m=+0.403579956
Tick at 2017-10-07 17:26:36.346476978 +0530 IST m=+0.501543074
Ticker stopped

Go Ticker 示例 2

package main
import (
    "log"
    "time"
)
func haveFun(s string) {
    log.Printf("\tA: Let's have fun: %v", s)
}
func doPolling() {
    for _ = range time.Tick(2 * time.Second) {
        haveFun("\t B : Okay!")
    }
}
func main() {
    go doPolling()
    select {} //The select statement lets a goroutine wait on multiple communication operations.
}
输出:
2017/10/07 18:15:15   A: Let's have fun:   B : Okay!
2017/10/07 18:15:17     A: Let's have fun:   B : Okay!
2017/10/07 18:15:19     A: Let's have fun:   B : Okay!
2017/10/07 18:15:21     A: Let's have fun:   B : Okay!
2017/10/07 18:15:23     A: Let's have fun:   B : Okay!
2017/10/07 18:15:25     A: Let's have fun:   B : Okay!

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4