go语言定时器常用函数和方法有哪些?老男孩周末班

    /    2019-05-29

更多内容请关注公众号:Go程序员开发


定时器可以实现在指定时间点执行特定的事件。Go语言定时器和其他语言的开发思路不一样。其他语言大多是注册回调函数定时,时间到了调用回调。
Go语言定时器的实质是单向通道,time.Timer结构体类型中有一个time.Time类型的单向 chan,通过 chan 的阻塞实现的。调用的地方读取 chan 定时,时间到向 chan 写入值阻塞解除调用函数。

定时器常用函数和方法:

func NewTimer(d Duration) *Timer

NewTimer创建一个Timer,它会在最少过去时间段d后到期,向其自身的C字段发送当时的时间。

func After(d Duration) chan Time

After会在另一线程经过时间段d后向返回值发送当时的时间。等价于NewTimer(d).C。

func Tick(d Duration) chan Time

Tick是NewTicker的封装,只提供对Ticker的通道的访问。如果不需要关闭Ticker,本函数就很方便。

func NewTicker(d Duration) *Ticker

NewTicker返回一个新的Ticker,该Ticker包含一个通道字段,并会每隔时间段d就向该通道发送当时的时间。它会调整时间间隔或者丢弃tick信息以适应反应慢的接收者。如果d<=0会panic。关闭该ticker可以释放相关资源。


(2)

分享至