5.18 time定时器

/**
timer定时器
*/
package main 

import (
	"time"
	"fmt"
)


func main1(){
	
	//创建一个定时器,设置时间为2s,2s后,往time通道写内容(当前时间)
	timer:=time.NewTimer(2*time.Second)
	fmt.Println("当前时间:",time.Now())
	
	//2s后,往timer.C写数据,有数据后,就可以读写
	t:=<-timer.C
	fmt.Println("c=",t)
	

}

//验证 time.NewTimer()时间到了,只会响应一次
func main(){
	
	//创建一个定时器,设置时间为2s,2s后,往time通道写内容(当前时间)
	timer:=time.NewTimer(2*time.Second)
	fmt.Println("当前时间:",time.Now())
	
	//2s后,往timer.C写数据,有数据后,就可以读写
	for{
		t:=<-timer.C
	    fmt.Println("c=",t)
	
	}
	/**   输出一次,死锁报错
	F:\goWorkSpace\study\05协程>go run 18_time定时器.go
	当前时间: 2020-04-07 23:02:36.6850771 +0800 CST m=+0.007978601
	c= 2020-04-07 23:02:38.6852674 +0800 CST m=+2.008168901
	fatal error: all goroutines are asleep - deadlock!
	
	goroutine 1 [chan receive]:
	main.main()
	       F:/goWorkSpace/study/05协程/18_time定时器.go:36 +0x13c
	exit status 2
	
	F:\goWorkSpace\study\05协程>
	
	
	*/

}
发布了145 篇原创文章 · 获赞 115 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/h4241778/article/details/105476303
今日推荐