带有分离线程的超时事件设计

时间:2013-05-17 15:18:00

标签: c linux multithreading timer

我有一个链表,我经常在其中插入节点。

对于每个节点,插入后,节点内的元素需要在5秒内更新,如果5秒内没有更新,则需要删除该节点。

我目前的设计是触发一个分离的线程,例程是:

func{
   sleep(5);
   flag=check_updating(node);
   if(flag == false)
      delete(node);       
}

这个设计是否可以?

有更好的设计吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

使用线程是处理计时器的一种非常繁重的方式,但如果你不太关心性能,我认为它可以正常工作。

我会说使用类似libeventlibev的内容,并在这些系统中排列您的计时器。他们能够毫不费力地满足您的时间需求。

答案 1 :(得分:0)

取决于列表的大小。如果以非常快的速度插入节点,则创建和销毁线程会很慢,甚至可能达到系统最大线程数。