0

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

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

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

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

这个设计好不好?

有更好的设计吗?谢谢!

4

2 回答 2

1

使用线程是处理计时器的一种非常繁重的方式,但如果您不太关心性能,我想它会工作得很好。

我会说使用libeventlibev 之类的东西,并在这些系统中排队您的计时器。他们将能够不费吹灰之力地处理您的时间需求。

于 2013-05-17T15:27:14.690 回答
0

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

于 2013-05-17T15:29:09.603 回答