2

如何使用 setitimer 配置 3 个以上的计时器?linux手册页说“系统为每个进程提供了三个间隔计时器,每个计时器在不同的时域中递减。当任何计时器到期时,都会向进程发送信号,并且计时器(可能)重新启动”。

4

3 回答 3

2

使用计时器机制,您仅限于三个。请参阅timerfd_create()没有此限制的更现代的替代品(尽管仅限 linux)。它也适用于文件描述符而不是信号,因此可以更容易地与使用 select/poll 实现的事件循环集成。

于 2012-07-01T21:45:52.713 回答
2

Linux 提供timer_create(从 2.6 开始)制作新的间隔计时器:http ://www.kernel.org/doc/man-pages/online/pages/man2/timer_create.2.html 。

如果您发现自己使用的系统只有基本计时器,您可以随时在用户编写的库中创建自己的。

还有timerfd_create(也是Linux特定的)。

于 2012-07-01T21:48:18.320 回答
0

mod对单个计时器使用检查以将其抽象为多个计时器。这就是谷歌在 javascript 中处理多个计时器的方式,我认为它也可以在这里工作。原因是它比连续运行多个计时器快几个数量级。

换句话说,如果你有一个每 5 毫秒运行一次的计时器,并且你计算了它运行了多少次,那么你可以mod计算,其中每 10 次也是一个 50 毫秒的计时器。

于 2012-07-01T21:48:39.123 回答