清華尹成帶你實戰GO案例(25)Go 打點器

尹成發表於2018-05-22
Go 打點器
Timer是讓你等待一段時間然後去做一件事情,這件事情只會做一次。而Ticker是讓你按照一定的時間間隔
迴圈往復地做一件事情,除非你手動停止它。

package main
import "time"
import "fmt"
func main() {
// Ticker使用和Timer相似的機制,同樣是使用一個通道來傳送資料。
// 這裡我們使用range函式來遍歷通道資料,這些資料每隔500毫秒被
// 傳送一次,這樣我們就可以接收到
ticker := time.NewTicker(time.Millisecond * 500)
go func() {
for t := range ticker.C {
fmt.Println("Tick at", t)
}
}()
// Ticker和Timer一樣可以被停止。一旦Ticker停止後,通道將不再
// 接收資料,這裡我們將在1500毫秒之後停止
time.Sleep(time.Millisecond * 1500)
ticker.Stop()
fmt.Println("Ticker stopped")
}


輸出結果
Tick at 2014-02-18 05:42:50.363640783 +0800 CST
Tick at 2014-02-18 05:42:50.863793985 +0800 CST
Tick at 2014-02-18 05:42:51.363532887 +0800 CST
Ticker stopped
在這個例子中,我們讓Ticker一個獨立協程上每隔500毫秒執行一次,然後在main函式所在協程上等待

1500毫秒,然後停止Ticker。所以只輸出了3次 Ticker at 資訊





網址:http://www.qukuailianxueyuan.io/



欲領取造幣技術與全套虛擬機器資料

區塊鏈技術交流QQ群:756146052  備註:CSDN

尹成學院微信:備註:CSDN



網址:http://www.qukuailianxueyuan.io/



欲領取造幣技術與全套虛擬機器資料

區塊鏈技術交流QQ群:756146052  備註:CSDN

尹成學院微信:備註:CSDN

相關文章