NewTicker 返回一個新的 Ticker。
ticker.C:
該 Ticker 包含一個通道字段,並會每隔時間段 d 就向該通道發送當時的時間。向其自身的 C 字段發送當時的時間。
它會調整時間間隔或者丟棄 tick 信息以適應反應慢的接收者。
如果d <= 0會觸發panic。關閉該 Ticker 可以釋放相關資源。
ticker.Reset:
Reset 使 t 重新開始計時,(本方法返回后再)等待時間段 d 過去后到期。
ticker.Stop:
停止定時器
1.定時器
package main import ( "fmt" "time" ) func main() { //創建一個周期性的定時器 ticker := time.NewTicker(3 * time.Second) fmt.Println("當前時間為:", time.Now()) go func() { for { //從定時器中獲取數據 t := <-ticker.C fmt.Println("當前時間為:", t) } }() for { time.Sleep(time.Second * 1) } }
2.停止定時器
package main import ( "fmt" "runtime" "time" ) func main() { //創建一個周期性的定時器 ticker := time.NewTicker(3 * time.Second) //定義計數器 count := 1 fmt.Println("當前時間為:", time.Now(), "count = ", count) go func() { for { //從定時器中獲取數據 t := <-ticker.C count++ fmt.Println("當前時間為:", t, "count = ", count) if count == 10 { /** 如果周期性定時被消費10次后就停止該定時器 */ ticker.Stop() runtime.Goexit() } } }() for { time.Sleep(time.Second * 1) } }