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