Libuv Timer定时器
Libuv Timers定时器
在定时器启动后一段特定的时间后,定时器会调用回调函数。Libuv的定时器还可以设定为按照时间间隔定时启动,而不仅仅是启动一次。
简单地使用一个定时器,超过时间timeout
作为参数初始化定时器(意味第一次启动之后多久响应回调事件),还有一个可选参数repeat
。定时器可以在任意时刻被终止。
uv_timer_t timer_req;uv_timer_init(loop,&timer_req);
uv_timer_start(&timer_req,callback,5000,2000);
上述操作会启动一个循环定时器(repeating timer),它会调用uv_timer_start后,5秒(timeout)启动回调函数,然后每2秒(repeat)循环启动回调函数。可以使用:
uv_timer_stop(&timer_req);
来终止一个定时器。这个函数也可以在回调函数中被安全地使用。
循环的间隔也可以被随时定义,使用:
uv_timer_set_repeat(uv_timer_t* timer,int64_t repeat);
它会在可能的情况下发挥作用。如果上述函数是在定时器回调函数中被调用,这意味着:
- 如果定时器未设置循环,此时定时器已经停止。需要先用
uv_timer_start
重新启动。- 如果定时器被设置为循环,那么下一次超时的时间已经被规划好,所以在切换新的循环间隔之前,旧的循环间隔仍然还会发挥一次作用。
工具函数:
int uv_timer_again(uv_timer_t *)
只适用于循环定时器,相当于停止定时器,然后把原先的timeout
和repeat
值都设置为之前的repeat
值,并启动定时器。如果调用该函数的时候,定时器尚未启动,那么则调用失败(错误码UV_EINVAL
)并返回-1。
简单示例
static uv_timer_t testTimer;void Test(uv_timer_t* handle)
{fprintf(stdout, "load Test1 %llu\n", uv_now(g_loop));static int count = 0;count++;fprintf(stdout, "update shopActive %d\n", count);if (count == 5){fprintf(stdout, "save shopData %d\n", count);count = 0;}
}int main(int argc, char* argv[])
{g_loop = uv_default_loop();uv_timer_init(g_loop, &testTimer);uv_timer_start(&testTimer, Test, 0, 5000);uv_run(g_loop, UV_RUN_DEFAULT);printf("main loop stop\n");return 0;
}
Libuv 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定时器操作,下次定时到了以后,上次还未执行完怎么办 ------解决方案------------------------------------------------------ ...
最新文章
- PDO防注入原理分析以及使用PDO的注意事项 (转)
- 不只是让利百亿,天猫618揭示了哪些新零售趋势?
- unity镜头边缘羽化_【后期修图】如何利用Ps中的自适应广角滤波器校正镜头失真?...
- 37职责链模式(Chain of Responsibility Pattern)
- ssis 映射列 使用变量_SSIS中的动态列映射:SqlBulkCopy类与数据流
- 计算机的进制数思想在哪方面有应用,计算机应用技术问答题(一)
- win10配置python_win10中的Python安装与环境配置
- CEM计算电磁学 -- Lecture 1 学习笔记 (1) --- 麦克斯韦方程、波动方程
- 分布式事务框架-seata
- 苹果开发者账号绑定设备已满
- UltraEdit 21.30.1006.0 繁体中文破解版(功能最强的文本编辑器)
- 虚幻4渲染编程(环境模拟篇)【第三卷:体积云天空模拟(3)---高层云】
- 前端报表导出成word文档(含echarts图表)
- 【5】依赖注入DI(Dependency Injection)
- 大话计算机知识流程图,大话数据结构 -- 整理归纳(1)
- Centos7扩容根目录
- C语言进阶——内联汇编
- 谷歌浏览器table不规则表格使用rowspan/colspan导致线条粗细不同
- Kubernetes之(十七)网络模型和网络策略
- java中fido_使用YOCTO fido分支创建的工具链问题
热门文章
- python获取网页数据判断并提交_【python爬虫网页结构分析】判断数据是在html的静态网页还是在动态网页;找对URL;豆瓣;QQ音乐...
- 计算机网络安全-----防火墙
- LLVM-clang
- 泰勒公式求极限c语言switch,C语言利用泰勒公式构造求SIN(X),求大触帮看我的代码哪里有问题...
- 使用C语言产生正弦波数据
- 2038年危机!“Unix千年虫”
- 微信小程序--视频播放器
- pcre_exec()详解
- web漏洞--注入漏洞
- flutter TextField 输入框组件