如何使用setitimer配置3个以上的计时器?linux手册页上写道:“系统为每个进程提供三个时间间隔计时器,每个计时器在不同的时间域中递减。当任何计时器超时时,将向该进程发送一个信号,然后计时器(可能)重新启动”。
发布于 2012-07-02 05:45:53
使用itimer机制,您最多只能使用三个。请参阅timerfd_create(),以获得没有此限制的更现代的替代方案(尽管仅限于linux)。它还处理文件描述符,而不是信号,因此可以更容易地与使用select/poll实现的事件循环集成。
发布于 2012-07-02 05:48:18
Linux提供了timer_create (从2.6开始)来创建新的时间间隔计时器:http://www.kernel.org/doc/man-pages/online/pages/man2/timer_create.2.html。
如果您发现自己使用的系统只有基本的计时器,您可以随时在用户编写的库中创建自己的计时器。
还有timerfd_create (也是Linux特有的)。
发布于 2012-07-02 05:48:39
在单个计时器上使用mod检查,将其抽象为多个计时器。这就是google如何在javascript中处理他们的多个定时器,我假设它在这里也可以工作。理由是它比连续运行多个计时器快数量级的。
换句话说,如果你有一个计时器每5毫秒运行一次,并且你有它已经运行了多少次的计数,那么你可以mod这个计数,每10次就是一个50毫秒的计时器。
https://stackoverflow.com/questions/11285840
复制相似问题