3.27的笔试四道ac了三道半
4.6邮件通知 4.7面试
自我介绍
0.你用了reactor模式,那reactor模式的工作线程是异步还是同步IO呢?同步IO异步IO定义是什么
(工作线程是用线程池实现的,reactor半同步半反应堆所以应该是同步?定义是内核返回给应用程序的是就绪的还是完成事件)
1.项目中用了epoll,说说Epoll和select,poll的区别
(答:在内核表里创建一项,边沿模式,返回的已就绪数组不用轮询)
2.epoll底层数据怎么管理组织的呢
(答:噢,select是传入三个数组分别代表可读可写异常事件,epoll是都在一个event里注册,然后检测revents)
3.TCP,UDP的区别,一般通讯软件是用什么
(被误导了,本来想分开文本和视频的结果面试官补充说了一句不管什么文本还是图像视频,我就说都用udp...然后面试官说通讯软件不会单一地用哪一个,文本tcp视频音频udp...)
4.我看你用了小根堆定时器挺感兴趣,小根堆定时器怎么工作的(只提到了LRU...细节部分忘光了...)
5.线程池里用了请求队列,有什么办法避免锁的消耗
(答:无锁编程cas,面试官说没什么太大问题,不过你可以了解下无锁队列......)
6.聚焦索引和非聚焦索引(一个叶子节点是数据页,另一个是键值)
7.聚焦索引和非聚焦索引多少个(1个和很多?然后面试官说聚焦索引存放主键唯一,sql其余所有索引都是非聚焦索引...)
6.sql查找某一列最大值(我居然没答MAX函数答了个orderby....)
7.redis数据结构,排行榜用哪一个实现
8.跳表skiplist什么实现的,查询复杂度多少,原理(只知道跳表隔一层会有两个节点,缩短了链表长度...)
9.两道题:简单的前序遍历和多线程交替打印
我连前序都没写出来...完全不知道我在干什么,多线程还差一点一小时到了考官和我说了拜拜,然后语重心长地跟我说字节很看重写题和代码编写的逻辑思维能力,我还要加强......
总结:单单看书东西真的不入脑,再加上表述能力差直接寄,然面试官感觉人挺好了,问的题目也非常简单了.,唉,话说做题我真的完全不行,每一次题目数字一出来我就开始脑壳发热了居然连简单题都做不出来...
......以为挂了居然收到了二面通知......卧槽,这二面会问啥啊
4.14 二面
虚函数是什么?运行多态有什么好处?
epoll底层怎么实现的?
epoll的ET模式和水平模式区别。
binlog干什么用的?
说一下MySQL隔离级别哪几种,对应解决的问题是什么?
说说对Redis的理解,把能想到的都说一说。
为什么Redis单线程还那么快?
算法题:
1.查询有两个order的用户
2.二叉树的最大宽度(问我时间复杂度多少)
二面问的我特别难受,前几个问题追根究底的问了好久,过了四天收到感谢信