2019.7.7-16.00
自我介绍一下吧
项目里用到libevent讲一下对它的了解
讲了reacter模式
reactor模式是这样一种模式, 主线程只复杂监听文件描述符上是否有事件发送,有的话就通知工作线程,工作线程通过回调函数机制先注册相应的事件,等到主线程通知,工作就是就触发相应的事件。
面试官说请讲一下具体实现的细节
这个网络库怎么实现的
我讲了主要看到了epoll select poll kqueue等
讲一下epoll实现原理
线程池调度模式
当任务队列中任务过多时,调度线程开启更多线程来工作, 当任务队列中任务比较少时,调度线程会关闭多余的线程
我说生产者消费者模式,工作队列
还问到了用到了什么锁
我说互斥锁,和信号量
如何高并发中解决大量互斥锁带来的巨大开销
这个不会,瞎说的分成读写事件,读不加锁,写加锁~~~
线程池大小如何确定
讲一下数据库的索引
讲了b 树实现,问这个b 树还有那些应用我说文件系统,和索引
你会c 是吧,那问几个相关的问题的吧,用的那个版本
c 11了解share_ptr吗,实现原理,手写代码
讲解lambda函数吗,讲解一下实现原理,讲解一下捕获参数的实现 和stl里function中的bind的区别
右值引用了解吗,右值和左值的区别
既然这样move就不问了
说一下多态吧 虚函数表 虚函数指针 含有虚函数的sizeof,空class的sizeof
tcp握手挥手两件套 time-wait原因,以及服务器会出现吗
再问项目这个分布式的项目有点尴尬,明明是一个算法,就是就是个纯理论啊~~
讲一下另一个项目,组合优化是类似于背包问题吗?你是怎么解决你的问题的
差不多啦,开始编程吧
1-25放在5*5格子里,每一行每一列都按照递增的顺序放,有多少种放法?
不会-_-||
有一个数组里有n个数从中等概率的取出k个数。
讲了一种思路,面试官说换一种思路求解没想出来
链表的快排~~~
思路有问题写了一半,时间差不多了
还有什么想问的吗
将近一个半小时的面试