请问如何实现多个并行的定时器?

Alanbus 2005-07-12 01:22:10
比如有这样的场景:多个消息带有不同的Expire值,是否可以每进来一个消息指派一个定时器(设时长为Expire),并把Expire值保存在一个list里,当定时器到点时,处理 list,把超时的节点删除掉?使用alarm不能实现并行的定时吧?(单线程是这样,多线程能否实现对应多个定时器?多线程环境下SIGALRM是否会丢失呢?)。请问大侠处理多消息不同时长的定时器,比较通用的处理方法是怎么做的呢(定时轮询吗?)?使用信号是不是无法满足这种情况呢?请各位大侠支招!期待中。。。。。。
...全文
138 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjf7888 2005-07-14
  • 打赏
  • 举报
回复
http://www.linuxforum.net/forum/showflat.php?Cat=&Board=linuxK&Number=91513&page=0&view=collapsed&sb=5&o=7&part=
Alanbus 2005-07-13
  • 打赏
  • 举报
回复
谢谢ghtsao(月之暗面),我原来的想法也是使用一个线程轮询,但是我想使用信号是否无法实现多个时钟定时呢?不确定信号不可能实现,是否有方法可以让可靠信号来实现呢?或者说用信号是否可以实现多个软件时钟的管理呢?
ghtsao 2005-07-12
  • 打赏
  • 举报
回复
时间事件当然最好用消息发往各接收用户,这样不会阻塞定时器的轮询。
ghtsao 2005-07-12
  • 打赏
  • 举报
回复
多个软件时钟其实可以用一个线程轮询就可以做到,多个线程无助于提高定时精度,少许误差是可以接受的,精准的定时器只有用实时系统来实现。

18,773

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 专题技术讨论区
社区管理员
  • 专题技术讨论区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧