go语言 time

三种定时方法

package main

import (
	"time"
	"fmt"
)

func main()  {
	// 1 . sleep
	time.Sleep(time.Second)

	// 2. Timer.C
	myTimer := time.NewTimer(time.Second * 2)		// 创建定时器, 指定定时时长,
	nowTime := <- myTimer.C  						// 定时满时,系统向timee.c中写入时间
	fmt.Println( nowTime)

	// 3 time.After
	fmt.Println( time.Now())
	nowTime2 := <-time.After(time.Second * 2)  //直接写入是极限
	fmt.Println(nowTime2)
}


重新及消除定时

func main()  {

	myTimer := time.NewTimer(time.Second * 10)		// 创建定时器
	myTimer.Reset(1 * time.Second)		// 重置定时时长为 1
	go func() {
		for {
			<- myTimer.C
			fmt.Println("子go程,定时完毕")
		}
	}()

	//myTimer.Stop() // 设置定时器停止,系统不会像Timer.C中写入时间,故协程会一直阻塞
	for {
		;
	}
}

周期定时

package main

import (
	"fmt"
	"time"
)

func main() {

	fmt.Println("now:    ", time.Now())
	myTicker := time.NewTicker(time.Second) // 定义一个周期定时器,1s
	go func() {
		for {
			nowTime := <-myTicker.C
			fmt.Println("nowTime:", nowTime)
		}
	}()

	for {

	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值