腾讯音乐后台开发一面面经
腾讯音乐后台开发一面,面完看状态已经变成了复试,这次效率还挺高的。。。
之前面过一次腾讯地图,一面后过了一个星期左右,状态才变灰。然后被腾讯音乐锁了简历,11天之后迎来了今天的一面。。。
来电话时正在打羽毛球,直接问我现在有时间面试吗(正常情况下应该是先约面试时间的,这个是因为我下午找HR催了面试官了)?我说可以等二十分钟之后吗?然后就约了7点的面试
面试官非常直接,就介绍了一句我是腾讯音乐的,然后就直接开问
1.实验室方向
2.进程和线程
3.线程上下文切换为什么比线程开销小
4.如果两个进程都是单线程,这时怎么进行线程切换?(面试官意思可能是不同进程之间的线程怎么切换)
5.进程间通信方式
6.线程同步
7.为什么进程间需要单独的通信方式,而线程不需要?
8.什么是死锁?
9.如何预防死锁?
10.select和epoll区别(底层原理)
11.TCP,UDP区别
12.Nagle算法
13.不用Nagle与用Nagle的好处分别是什么
14.HTTP下载一个文件时,为什么速度刚开始时很慢,慢慢的才会达到一个封顶(完全懵逼)
15.HTTP的put和get有什么区别,在协议层面上有没有了解过(没有)
16.TCP三次握手
17.什么是半连接状态
18.TCP为什么可靠?
19.UDP怎么样可以实现可靠传输?
20.用什么语言?C++,然后开始问C++相关的
21.虚函数如何实现?
22.析构函数为什么要是虚函数,构造函数可以是虚函数吗?为什么?
23.友元类
24.为什么要做内存对齐?
25.深拷贝,浅拷贝
26.map,unordered_map底层,效率
27.哈希冲突怎么解决
5个算法题,比较简单,没让写,只说思想:
28.二叉树中寻找两个节点的公共父节点?
29.二叉树深度
30.数组里的第2大元素(堆,冒泡思想)
31.单向链表的倒数第n个节点
32.判断链表中是否有环
问实习:
33.介绍实习项目
34.协程怎么理解?为什么协程由我们自己调度的话,性能会更高呢?
35.什么情况下会对协程进行切换(调度),然后我还是没明白,面试官给解释:操作系统调度线程用时间片,时间片用完调度另外的线程,那你调度协程是怎么判断该调度哪个协程了呢?
36.项目参考开源代码还是自己实现的,你在里边主要负责什么?
37.协程调度算法是什么样的?
然后就直接结束了,也没让我问问题,以为凉了。。。