在最近的一次采访中,有一个有趣的问题,就是这样。在定期时间间隔内调用函数的API
需要实现一个函数,它将接受函数指针和时间间隔。 它应该启用func1
每time_interval
被调用。
我们为每个时钟周期提供一个API。 可以有多个对create_timer的调用,在这种情况下,它应该按照各自的时间间隔调用每个函数指针。
// api
create_timer(&func, interval)
// call to api would look like
create_timer(&func1, 10);
create_timer(&func2, 5);
我建议建立一个函数指针链表,但在这种情况下,它是在每个时钟周期线性搜索。这不是一个好的解决方案。
我也提出了一个优先级队列解决方案,但那也没有解决。 我们需要存储的时间create_timer被调用各项功能,&然后计算与当前的时间差,然后&如果不同的是TIME_INTERVAL的倍数,我们调用该函数。
任何有趣的解决方案?
功能后遍历链接列表中有create_timer调用之后加以调用的时候,建议。我优先级队列的解决方案,但他不是满意。 – vindyz
@vinay:查看我的编辑。也许它不够清楚 – LihO