随笔分类 - 秋招准备
摘要:非活动连接,定时器怎么实现的,最小堆和升序链表 (会不会修改,有点忘了,应该是会改的,我记得有umap, 就说了) 怎么设计分布式定时器(单实例定时器挂了怎么处理),主节点和从节点逻辑不一样 假设LRU缓存的数据,需要过期时间,怎么设计(答:和webserver的定时器差不多,每个缓存开启一个定时器
阅读全文
摘要:lru与lru-k区别 LRU(最近最少使用替换算法) 思想:如果数据最近被访问过,那么将来被访问的几率也更高。 实现:使用一个栈,新页面或者命中的页面则将该页面移动到栈底,每次替换栈顶的缓存页面。 优点:LRU算法对热点数据命中率是很高的。 缺点: 1.缓存颠簸,当缓存(1,2,3)满了,之后数据
阅读全文
摘要:总结的挺好的 参考此文章 内存映射(Memory-mapped I/O)是将磁盘文件的数据映射到内存,用户通过修改内存就能修改磁盘文件。 RocketMQ为什么快?kafka为什么快?什么是mmap?这些问题都逃不过一个点,就是零拷贝。 虽然还有其他的原因,但是这里主要讨论零拷贝。 传统的IO方式
阅读全文
摘要:主要考察八股和代码,时间半个小时左右 栈和队列的应用, 栈(stack)又名堆栈,它是一种运算受限的线性表,限定仅在表尾进行插入和删除操作的线性表 表尾这一端被称为栈顶,相反地另一端被称为栈底,向栈顶插入元素被称为进栈、入栈、压栈,从栈顶删除元素又称作出栈 所以其按照先进后出的原则存储数据,先进入的
阅读全文
摘要:线程池相关 手写线程池 线程池有三个类: 任务类 任务队列 线程池 主要组成部分是三个: 任务队列,存储需要分配的任务,用队列实现 工作线程。 工作线程不停地读取任务队列,读取里面的任务并处理。 如果队列为空,工作线程将会被阻塞,条件变量 队列不为空,唤醒线程,工作 管理线程。 周期性的对任务队列中
阅读全文
摘要:仅供学习交流,如有侵权,请联系删除! Webserver项目流程总结 C++ Linux Web Server 面试基础篇-操作系统(四、线程通信) 【WebServer】项目总体流程 Tinywebserver——服务器面试题 C++ LinuxWebServer 2万7千字的面经长文(上) C+
阅读全文