示例如下:

package mainimport ("fmt""time"
)func testTimer1() {go func() {fmt.Println("test timer1")}()}func testTimer2() {go func() {fmt.Println(time.Now().String())}()
}func timer1() {timer1 := time.NewTicker(1 * time.Second)for {select {case <-timer1.C:testTimer1()}}
}func timer2() {timer2 := time.NewTicker(5 * time.Second)for {select {case <-timer2.C:testTimer2()}}
}func main() {go  timer1()timer2()
}

运行结果截屏如下:

  

看go的time部分源码 Ticker结构

type Ticker struct {C <-chan Time // The channel on which the ticks are delivered.r runtimeTimer}

  

go的time和ticket的调用

或者叫timmer internal和其他语言的开发思路不一样。

其他语言,多是注册回调函数,定时,时间到了调用回调。

go是 通过 chan

的阻塞实现的。

调用的地方,读取chan

定时,时间到,向chan写入值,阻塞解除,调用函数

转载于:https://www.cnblogs.com/unqiang/p/6775617.html

go的timer定时器实现相关推荐

  1. Timer定时器开发

    Timer定时器开发 定时器的作用是不占线程的等待一个确定时间,同样通过callback来通知定时器到期. 参考:https://github.com/sogou/workflow 定时器的创建 同样 ...

  2. java Timer定时器管理类

    1.java timer类,定时器类.启动执行定时任务方法是timer.schedule(new RemindTask(), seconds*1000);俩参数分别是TimerTask子类,具体执行定 ...

  3. timer.schedule —— timer定时器的用法

    Java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks. 一个TimerTask实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内,TimerT ...

  4. python timer使用-Python timer定时器两种常用方法解析

    这篇文章主要介绍了Python timer定时器两种常用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 方法一,使用线程中现成的: 这种一般 ...

  5. 【Android 异步操作】Timer 定时器 ( Timer 与 TimerTask 基本使用 | Timer 定时器常用用法 | Timer 源码分析 )

    文章目录 一.Timer 定时器基本使用 二.Timer 定时器常用用法 三.Timer 源码分析 四.Timer 部分源码注释 五.源码及资源下载 参考文档 : Timer 定时器 API 文档 T ...

  6. java项目中多个定时器_在java项目中如何使用Timer定时器

    在java项目中如何使用Timer定时器 发布时间:2020-11-16 16:36:16 来源:亿速云 阅读:97 作者:Leah 在java项目中如何使用Timer定时器?很多新手对此不是很清楚, ...

  7. java timer线程结束_Java线程Timer定时器用法详细总结

    定时/计划功能主要使用的就是Timer对象,它在内部还是使用多线程的方式进行处理,所以它和线程技术还是有非常大的关联. Timer类主要作用就是设置计划任务,但封装任务的类却是TimerTask类.T ...

  8. Timer定时器控件 1130

    Timer定时器控件 1130 引入 Timer 属性

  9. c# 使用timer定时器操作,上次定时到了以后,下次还未执行完怎么处理

    c# 使用timer定时器操作,下次定时到了以后,上次还未执行完怎么办 ------解决方案------------------------------------------------------ ...

  10. python定时器的使用方法_Python timer定时器两种常用方法解析

    这篇文章主要介绍了Python timer定时器两种常用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 方法一,使用线程中现成的: 这种一般 ...

最新文章

  1. sql 执行顺序_10个简单步骤,完全理解SQL
  2. OpenGL Lighting models照明模型的实例
  3. Flutter浪潮下的音视频研发探索
  4. linux査 到漠河 装apache,如何在Ubuntu上搭建一台安全的Apache Web服务器
  5. 2016年全国计算机技术与软件,2016年的上半年的全国计算机技术与软件专业技术资格(水平)考.doc...
  6. jeecg 导出的excel不能使用公式_微软:Excel公式是世界上使用最广泛的编程语言...
  7. 现在开始做一些什么事情可以在五年以后大为收益? Answer by FindProz.com Co-founder
  8. bootstrap使用
  9. 10.03今日暂时停更博客
  10. JAVA实验面向对象程序设计,面向对象程序设计a(java)实验报告.docx
  11. 社会语义网络图用什么软件绘制_GitMind:免费在线思维导图软件
  12. mysql创建索引降序_Mysql中的降序索引底层实现
  13. linux 添加开机启动项的三种方法。
  14. str系列函数详解(包会)
  15. Python:PDF转PNG(6行代码搞定)
  16. sql: expected 0 arguments, got 1
  17. 回归分析中的p值和R方哪个更重要?
  18. 布局与控件(七)-ListView知多少(上)
  19. VBA小模板,一个不放回的抽奖用的例子
  20. mybatis分步查询与延迟加载

热门文章

  1. oracle 用户管理
  2. java基础——equals及==的区别
  3. Hyperledger中数据存取的实现
  4. css居中无效的解决办法
  5. java pojo 转 map_JSON和JAVA的POJO的相互转换
  6. 三个子系统_「正点原子Linux连载」第五十八章Linux INPUT子系统实验(一)
  7. CentOS7 3.项目持续交付脚本
  8. 如何暂停一个正在运行的线程?
  9. Android 动画以view中心点旋转动画
  10. Android 获取经纬度,地理位置,省市区