我需要实现一个链表,链表中的每个记录都将"TTL:time to live"变量作为成员之一。因此,每次在链表中创建记录时,TTL 都会设置为某个值并启动计时器。一旦计时器过期,必须立即从链表中删除记录。
我想知道这是否可以在 C 中实现,如果是,如何实现?
最简单的实现是给每条记录一个live until
(定义为创建记录时的current time + ttl
),然后忽略所有带有live until < current time
的记录。
这样,您可以选择何时删除过期的记录。也许您想在列表的所有函数的开头执行此操作。也许你想要一个计时器,它每秒做一次。也许是这些的某种组合。
为每条记录设置计时器很可能没有意义。