定时器相关面试问题

发布时间 2023-10-30 11:22:53作者: dustemoff

非活动连接,定时器怎么实现的,最小堆和升序链表 (会不会修改,有点忘了,应该是会改的,我记得有umap, 就说了)


怎么设计分布式定时器(单实例定时器挂了怎么处理),主节点和从节点逻辑不一样


假设LRU缓存的数据,需要过期时间,怎么设计(答:和webserver的定时器差不多,每个缓存开启一个定时器,使用时间堆)


webserver 定时器是如何实现的?如果要用 STL 里的某个数据结构,应该选哪个?存放的数据又是什么?


手撕:实现一个定时器,包含常见功能


● 定时器如何实现

 

● 大量定时器,如何优化轮询查看是否超时的这个流程

 

链接的处理要不要定时器

 

6、IO的处理要不要定时器

 

7、定时器怎么做的,实现方案(深挖)

 

有没有了解过其他定时器的实现方式?

 

A:其实不同的实现方式都是为了要快速找出过期任务,那么可以使用的方案就很多了:

维护有序数组,二分查找过期任务;
类似1,可以借助于跳表;
使用红黑树维护;
使用最小堆维护;
使用时间轮算法:对于时分秒三级时间,每一级都使用一个时间轮,并维护一个游标cursor:

redis是单线程的为什么有定时器

 

定时器类为什么要使用红黑树,可以使用跳跃表吗

 

为什么用小根堆做定时器而不用其他方法做定时器

 

Linux可以通过什么实现定时器?怎么实现?

 

每一次客户端发送一个tcp包,服务端都会刷新定时器吗


定时器为什么不多搞几个链表替换时间轮

 

大量的定时器怎么实现的

定时器是为了检测tcp异常,如何用keep alive实现?

Linux定时器的实现。比如TCP中发送一个ACK包后有一个超时等待,如何去做。


定时器作用
2.场景题:
(1)双十一十五分钟不付款就取消订单,怎么实现?(定时器)
定时器加到哪里(订单添加到数据库时,添加定时器)
负载均衡,如果有几台服务器宕机了,定时器怎么办?(冗余备份)
那么备份定时器的资源消耗有多大?(懵逼)

如何实现一个高可靠、低延迟的定时器(给出的是发布订阅模式+redis+过期时间)

定时任务用redis怎么实现任务消费(发布订阅,绑定设置的键。轮询或回调。能不能用消息队列实现)

Linux 中如何实现一个定时器,能够精确到微秒