当我们想按固定的时间间隔进行一些工作时,会使用" Go Tickers"。可以使用Stop()方法像停止计时器一样停止股票行情。
NewTicker()方法返回一个新的Ticker,它具有一个根据duration参数发送时间的通道。持续时间必须大于零,否则,置顶器将出现Panic。
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") }
输出:
链接:https://www.learnfk.comhttps://www.learnfk.com/go/go-tickers.html
来源:LearnFk无涯教程网
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
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 {} //select 语句让 goroutine 等待多个通信操作。 }
输出:
链接:https://www.learnfk.comhttps://www.learnfk.com/go/go-tickers.html
来源:LearnFk无涯教程网
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!
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)