当前位置: 技术问答>linux和unix
请问如何实现多个并行的定时器?
来源: 互联网 发布时间:2015-10-08
本文导语: 比如有这样的场景:多个消息带有不同的Expire值,是否可以每进来一个消息指派一个定时器(设时长为Expire),并把Expire值保存在一个list里,当定时器到点时,处理 list,把超时的节点删除掉?使用alarm不能实现并行...
比如有这样的场景:多个消息带有不同的Expire值,是否可以每进来一个消息指派一个定时器(设时长为Expire),并把Expire值保存在一个list里,当定时器到点时,处理 list,把超时的节点删除掉?使用alarm不能实现并行的定时吧?(单线程是这样,多线程能否实现对应多个定时器?多线程环境下SIGALRM是否会丢失呢?)。请问大侠处理多消息不同时长的定时器,比较通用的处理方法是怎么做的呢(定时轮询吗?)?使用信号是不是无法满足这种情况呢?请各位大侠支招!期待中。。。。。。
|
多个软件时钟其实可以用一个线程轮询就可以做到,多个线程无助于提高定时精度,少许误差是可以接受的,精准的定时器只有用实时系统来实现。
|
http://www.linuxforum.net/forum/showflat.php?Cat=&Board=linuxK&Number=91513&page=0&view=collapsed&sb=5&o=7&part=