golang的Timer定時器
阿新 • • 發佈:2018-10-08
now() 計時器 imp red 設置 修改 after eset res
// code_047_Timer project main.go
package main
import (
"fmt"
"time"
)
func main() {
timer1 := time.NewTimer(time.Second * 2)
t1 := time.Now()
fmt.Printf("t1:%v\n", t1)
t2 := <-timer1.C
fmt.Printf("t2:%v\n", t2)
//如果只是想單純的等待的話,可以使用 time.Sleep 來實現
timer2 := time.NewTimer(time.Second * 2)
<-timer2.C
fmt.Println("2s後")
time.Sleep(time.Second * 2)
fmt.Println("再一次2s後")
<-time.After(time.Second * 2) //time.After函數的返回值是chan Time
fmt.Println("再再一次2s後")
timer3 := time.NewTimer(time.Second)
go func() {
<-timer3.C
fmt.Println("Timer 3 expired")
}()
stop := timer3.Stop() //停止定時器
////阻止timer事件發生,當該函數執行後,timer計時器停止,相應的事件不再執行
if stop {
fmt.Println("Timer 3 stopped")
}
fmt.Println("before")
timer4 := time.NewTimer(time.Second * 5) //原來設置5s
timer4.Reset(time.Second * 1) //重新設置時間,即修改NewTimer的時間
<-timer4.C
fmt.Println("after")
}
golang的Timer定時器