1、Timer的使用
示例: #創建一個定時器,設置時間為2s,2s后,往time通道寫內容(當前時間)
package main import ( "fmt" "time" ) //驗證time.NewTimer(),時間到了,只會響應一次 func main() { timer := time.NewTimer(1 * time.Second) for { <-timer.C fmt.Println("時間到") } } func main01() { //創建一個定時器,設置時間為2s,2s后,往time通道寫內容(當前時間) timer := time.NewTimer(2 * time.Second) fmt.Println("當前時間:", time.Now()) //2s后,往timer.C寫數據,有數據后,就可以讀取 t := <-timer.C //channel沒有數據前后阻塞 fmt.Println("t = ", t) }
執行結果:
時間到 fatal error: all goroutines are asleep - deadlock! // goroutine 1 [chan receive]: main.main() D:/GoFiles/src/hello_01/mai1.go:13 +0x54