美团 基础研发平台 后端开发 面经
基础研发平台 后端开发
一面
时间:
- 08月12日 10:00 牛客视频面试 50min
问题:
算法:删除链表倒数第n节点
介绍实习经历(k8s相关,面试官好像不是很懂,没有刁难)
进程、线程、协程区别,讲讲go的协程线程间关系、调度相关
os中的锁原理,go中的锁原理,go中如何保证goroutine间并发安全
tcp如何保证可靠传输
哈希表原理,go里的map原理,是否并发安全,如何保证并发安全使用map
(项目,mit6.824的lab2)介绍下raft算法,如何保证不出现split brain
反问:
部门介绍? 主要做存储,kv存储对象存储等,语言是c++和go,工作地点北京and上海
给一些建议? 继续把lab写完,多了解工业级的raft算法应用。
二面
时间:
- 8月18日 20:00 视频面 45min
问题:
- 算法:一个数组,先递增后递减(都是非严格),求最大值。面试官让我先写严格的情况,写的有点久了,非严格的情况没想出来 哎。
问了几个开放性的问题,基本都答得很烂
cpu密集型的程序,应该开几个线程?在这基础上,如果出现大量L3 cache miss,可能是什么原因?如果怀疑出现死锁,如何排查确认?
int add_and_print() { static int a; a+=1; printf("%d", a); }
同一线程多次调用该函数,输出什么?多个线程并发调用,会怎样?怎么改成并发安全?a的值什么时候被初始化为零值。然而我和面试官说了我不懂c++。。
如果业务需要上传或下载一个100g的大文件,如何设计?
实习遇到的最大困难,如何克服?讲讲prometheus(实习相关)。
没有反问环节,不过面试官开局就说了没有反问。总体感觉开放性问题都答得不好,估计凉凉