社区
Linux/Unix社区
帖子详情
如何实现多定时器?
key20003
2004-08-18 03:51:11
怎么样实现或者模拟多定时器的操作,alarm和signal行吗
...全文
256
8
打赏
收藏
如何实现多定时器?
怎么样实现或者模拟多定时器的操作,alarm和signal行吗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
key20003
2004-08-19
打赏
举报
回复
谢谢,我看暂时也只能那样了,linux下面文档少的可怜,好多东西也只能在低层次上弄弄,唉!!
samstay
2004-08-19
打赏
举报
回复
你可以用1个TIMER来计时,最小单位自己定,然后用一个全局来作为多计时器标志,alarm来了就轮询一下,哪个到时候了,原理很简单.
key20003
2004-08-19
打赏
举报
回复
靠,这种例子我看的多了,且不说它到底和多定时器有什么关系,我看你发的例子自己都没试过,哪里复制了一段就贴了上来,真以为人家是菜鸟啊。
wxywh
2004-08-19
打赏
举报
回复
1、偶贴的代码只是定时器的基本部分,当然还要结合其他的函数来实现多定时器,这一段代码是从偶现在的项目中copy出来的,客户已经为该项目付款了,相信已经经过实践的检验了,呵呵。
2、tonywxd(阿董) 说的方法偶在一个用到定时器的动态库函数中有实现,该方法也可以实现多定时器。
vctony
2004-08-19
打赏
举报
回复
你用此函数试试吧,
gettimeofday();
该函数返回的是自1970年1月1日00时00分00秒以来经过的秒数和微秒数,你可以把返回的值记几个下来作为初值,再定义几个超时时长,哪个超时就调度哪个,哪个被调度了,就更新其初值.
这种方法可以欺骗LINUX内核,在你的进程中实现多线程.
我的老板实现过,可惜我没学到手.
wxywh
2004-08-18
打赏
举报
回复
给个例子:
void TimeStart(int sec,int usec,int i_sec,int i_usec)
{
struct sigaction TimeSignal;
struct itimerval ivalue,ovalue;
TimeSignal.sa_handler = TimeCount;
sigemptyset(×ignal.sa_mask);
TimeSignal.sa_flags = 0;
sigaction(SIGALRM,×ignal,NULL);
ivalue.it_interval.tv_sec = sec;
ivalue.it_interval.tv_usec = usec;
ivalue.it_value.tv_sec = i_sec;
ivalue.it_value.tv_usec = i_usec;
setitimer(ITIMER_REAL,&ivalue,&ovalue);
}
static void TimeCount(int signo)
{
int i;
++DelayCount;
++RecvDLECount;
}
key20003
2004-08-18
打赏
举报
回复
linux多定时器的问题好麻烦啊,我想干脆自己模拟下算了
把定时器的时间间隔划定的足够小,是所有定时间隔的最大公约数
然后在定时时间到处理程序中可以做多个定时,比如
我只有有一个秒级定时器,你就可以做5、20、30秒......的定时器,里面在用个map什么的东西匹配,感觉是行的,大家说说我这个方案可以吗,有什么要注意的地方
collide
2004-08-18
打赏
举报
回复
alarm实际上是使用SIGALARM信号,只能实现一个定时器,因为多次调用alarm(),它(alarm())会清楚以前的设定。
应该是不行,据我所知。
你可以看看apue(unix环境高级编程,信号那一章,说的很清楚),那个作者的观点好像也是不可一,同样因为以上的原因。
FreeRTOS记录(八、用软件
定时器
?还是硬件
定时器
?)
目录问:什么时候使用软件
定时器
,什么时候使用硬件
定时器
?一、FreeRTOS软件
定时器
基础1.1 时钟来源1.2 运行原理1.3 使用注意事项二、API介绍三、测试Demo 问:什么时候使用软件
定时器
,什么时候使用硬件
定时器
? ...
什么是
定时器
?Xilinx zynq7045/7020
定时器
什么是
定时器
?Xilinx zynq7045/7020
定时器
西门子博图的FB块_西门子S7-1200,如何在FB块中使用操作
定时器
?|
定时器
|timer|延时|调用|plc...
S7-1200 PLC的
定时器
一共有四种类型,包括脉冲
定时器
TP、接通延时
定时器
TON、关断延时
定时器
TOF、保持型接通延时
定时器
TONR。 在这篇文章就讲一个TON及TOF
定时器
的案例,来让大家熟悉指令的用法,以及如何在软件...
利用一个硬件
定时器
实现
多个虚拟
定时器
的两种方法
使用一个硬件
定时器
进行固定周期(比如 1m s)定时,用一个结构体数组作为软
定时器
描 述表, 数组的结构体数就是最大虚拟
定时器
的数量, 每个结构体的成员都包括虚拟
定时器
状 态(空闲、激活、运行、超时触发、...
定时器
延迟队列 设计思想
定时器
设计思想 参考
定时器
的设计的几种思路 总结: 1,排序链表 (简单粗暴的)复杂度是O(n) 2,最小堆(优先队列) 堆是一种经过排序的完全二叉树,其中任一非终端节点的数据值均...如何快速
实现
一个
定时器
? ...
Linux/Unix社区
23,126
社区成员
74,510
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章