是否可以将参数传递给c计时器的处理程序?

时间:2014-05-25 03:25:14

标签: c linux timer

我正在编写一个在每个线程上使用计时器的多线程程序。每个处理程序应该触发特定于该线程的标志。但是,我不确定如何识别信号来自哪个定时器。我正在使用setitimer。我希望信号模拟正在运行的进程的中断,因此我让线程运行任意任务,直到它获得退出并继续运行的标志。传递参数的替代方法是,有没有办法在启动计时器之前获取传递给处理程序的信号编号?

编辑:在linux机器上运行代码。

1 个答案:

答案 0 :(得分:1)

由于您使用的是Linux,我建议您使用timerfd_create()代替setitimer()。这将允许您创建大量计时器,使用select()epoll_wait()复用它们,并避免使用有点完全正确的信号。