0

问候,

我想知道是否有办法将计时器与 linux poll/epoll API 结合使用。我已经使用了 epoll,如果我可以使计时器成为队列中的另一个 epoll 事件,它将与现有代码很好地集成。

一种可能的方法可能是基于文件的计时器,例如

echo 400;now > /dev/timer ; cat /dev/timer ; # outputs after 400ms "now"

就像一个假想的例子。有这样的事情吗?还是有其他方法可以将它与 epoll API 集成?

——马伦茨

4

2 回答 2

5

用 epoll 做定时器很简单,因为 epoll_wait 也带了一个超时参数;您只需将所有计时器放入优先级队列并将超时设置为从现在到第一个之间的时间,然后触发该计时器的事件。

或者使用提供类似功能的 use libevent。

是的,如果你真的想要,你可以使用 timerfd(),但没有必要。

于 2009-12-22T14:54:10.057 回答
0

watch -n 0.4命令在这种情况下有用吗?

于 2009-12-22T13:15:10.037 回答