go的timer定时器实现
示例如下:
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定时器实现相关推荐
- Timer定时器开发
Timer定时器开发 定时器的作用是不占线程的等待一个确定时间,同样通过callback来通知定时器到期. 参考:https://github.com/sogou/workflow 定时器的创建 同样 ...
- java Timer定时器管理类
1.java timer类,定时器类.启动执行定时任务方法是timer.schedule(new RemindTask(), seconds*1000);俩参数分别是TimerTask子类,具体执行定 ...
- timer.schedule —— timer定时器的用法
Java.util.Timer定时器,实际上是个线程,定时调度所拥有的TimerTasks. 一个TimerTask实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内,TimerT ...
- python timer使用-Python timer定时器两种常用方法解析
这篇文章主要介绍了Python timer定时器两种常用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 方法一,使用线程中现成的: 这种一般 ...
- 【Android 异步操作】Timer 定时器 ( Timer 与 TimerTask 基本使用 | Timer 定时器常用用法 | Timer 源码分析 )
文章目录 一.Timer 定时器基本使用 二.Timer 定时器常用用法 三.Timer 源码分析 四.Timer 部分源码注释 五.源码及资源下载 参考文档 : Timer 定时器 API 文档 T ...
- java项目中多个定时器_在java项目中如何使用Timer定时器
在java项目中如何使用Timer定时器 发布时间:2020-11-16 16:36:16 来源:亿速云 阅读:97 作者:Leah 在java项目中如何使用Timer定时器?很多新手对此不是很清楚, ...
- java timer线程结束_Java线程Timer定时器用法详细总结
定时/计划功能主要使用的就是Timer对象,它在内部还是使用多线程的方式进行处理,所以它和线程技术还是有非常大的关联. Timer类主要作用就是设置计划任务,但封装任务的类却是TimerTask类.T ...
- Timer定时器控件 1130
Timer定时器控件 1130 引入 Timer 属性
- c# 使用timer定时器操作,上次定时到了以后,下次还未执行完怎么处理
c# 使用timer定时器操作,下次定时到了以后,上次还未执行完怎么办 ------解决方案------------------------------------------------------ ...
- python定时器的使用方法_Python timer定时器两种常用方法解析
这篇文章主要介绍了Python timer定时器两种常用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 方法一,使用线程中现成的: 这种一般 ...
最新文章
- sql 执行顺序_10个简单步骤,完全理解SQL
- OpenGL Lighting models照明模型的实例
- Flutter浪潮下的音视频研发探索
- linux査 到漠河 装apache,如何在Ubuntu上搭建一台安全的Apache Web服务器
- 2016年全国计算机技术与软件,2016年的上半年的全国计算机技术与软件专业技术资格(水平)考.doc...
- jeecg 导出的excel不能使用公式_微软:Excel公式是世界上使用最广泛的编程语言...
- 现在开始做一些什么事情可以在五年以后大为收益? Answer by FindProz.com Co-founder
- bootstrap使用
- 10.03今日暂时停更博客
- JAVA实验面向对象程序设计,面向对象程序设计a(java)实验报告.docx
- 社会语义网络图用什么软件绘制_GitMind:免费在线思维导图软件
- mysql创建索引降序_Mysql中的降序索引底层实现
- linux 添加开机启动项的三种方法。
- str系列函数详解(包会)
- Python:PDF转PNG(6行代码搞定)
- sql: expected 0 arguments, got 1
- 回归分析中的p值和R方哪个更重要?
- 布局与控件(七)-ListView知多少(上)
- VBA小模板,一个不放回的抽奖用的例子
- mybatis分步查询与延迟加载