zoukankan      html  css  js  c++  java
  • golang Timer&Ticker

    Timer

    type Timer struct{
        c <- chan Time
    }
    
    • 代表单次时间事件, 当Timer 到期会发送给C

    方法

    • func NewTimer(d Duration) *Timer
      • 创建一个Timer
    • func AfterFunc(d Duration, f func()) *Timer
      • 新开一个协程, 等待 d 时间后执行函数 f
      • 返回一个 *Timer, 可以用来调用 Stop(),Rest()
    • func (t *Timer) Reset(d Duration) bool
      • Reset使t重新开始计时,(本方法返回后再)等待时间段d过去后到期。如果调用时t还在等待中会返回真;如果t已经到期或者被停止了会返回假。无论执行与否,都会重置
    • func (t *Timer) Stop() bool
      • Stop停止Timer的执行。如果停止了t会返回真;如果t已经被停止或者过期了会返回假

    Ticker

    type Ticker struct {
        C <-chan Time // 周期性传递时间信息的通道
        // 内含隐藏或非导出字段
    }
    

    方法

    • func NewTicker(d Duration) *Ticker
      • NewTicker返回一个新的Ticker,该Ticker包含一个通道字段,并会每隔时间段d就向该通道发送当时的时间。
      • 会调整时间间隔或者丢弃tick信息以适应反应慢的接收者。
    • func (t *Ticker) Stop()
      • Stop关闭一个Ticker。在关闭后,将不会发送更多的tick信息

    对比Timer & Ticker

    • Timer 只执行一次,Ticker会循环执行,Timer 可通过重置方法来实现Ticker 类似的功能
    • Timer 可以定时执行一个函数, Ticker 通过for 循环可以实现相同功能
    • Timer 可以重置,Ticker 设置后无法重新设置
  • 相关阅读:
    Python进阶06 循环对象
    Python进阶05 循环设计
    Python进阶 函数的参数对应
    Python进阶01 词典
    Python基础 反过头来看看
    Python基础08 面向对象的基本概念
    利用zepto.js实现移动页面图片全屏滑动
    数组弃重方法
    fcc筆記
    文字颜色渐变效果
  • 原文地址:https://www.cnblogs.com/Frange/p/14817778.html
Copyright © 2011-2022 走看看