虾皮技术平台开发一二三面面经,已感谢信
8.16更新,感谢信了,很烦啧
base新加坡,没有英文环节,一面面试官给我说有些面试官可能会考察这方面,但我暂时还没遇到
感觉虾皮整体就属于聊到哪问到哪,我之前面的都是些小厂,基本就是提问,你答对答不对都下一道,虾皮就是开始问些八股,然后深入下去,说不会就让猜,让设计🤣
所以没有太大把握,只知道个名词的就不要说了,比如我嘴贱提了一嘴协程,其实啥都不知道
另外二面面试官对线程安全问的很多(比如线程安全的哈希表,之前压根没想过),听到最多的话就是“那怎么确保线程安全呢?”“ok,那下一个问题,没关系。”
整体来说面试官都很好,不会给压力,氛围比较轻松。
7.23 虾皮一面,九十分钟
问答六十分钟
先聊了聊项目,我只有一个webserver
1.EPOLL的原理,和SELECT,POLL的比较
2.LT模式和ET模式
3.字符串匹配和正则表达式匹配的效率问题
4.线程池
5.MAP和UNORDERED_MAP实现原理
6.TCP怎么确保可靠
7.TCP流量控制和拥塞控制,快重传为什么设定为3次,拥塞窗口是怎么增大的(后两个问题都没答对)
8.ARQ协议,如果让你设计ARQ协议,你会怎样做(只说了停等式和重传n帧)
9.如果服务端断网了,客户端会怎么样,如果服务端被kill了呢,如果服务端被kill以后立即重启了呢,如果中间的路由器或者交换机故障了呢
11.进程和线程的联系和区别
12.怎么查看线程的负载等信息
13.怎么创建进程,怎么创建线程,除了fork()还有什么能达到类似的效果吗(应该是想问vfork或者clone,但我当时不知道😂)
14.什么时候要切换进程
15.协程,如果让你设计协程,你有什么想法(嘴贱提了一句知道有个协程的概念,然后问我原理,我说不会就让我猜,让我设计😂)
编程三十分钟
LRU,实现set,get,del(前面聊项目的时候说定时器用LRU做过)
写了个简单的输入输出测试
7.29 虾皮二面,六十分钟
编程题 三十分钟:
LC 124. 二叉树最大路径和(我的面试官应该是安排了半个小时笔试,写完了说还有时间再来一道)
LC 179. 最大数
都没有写输入输出
hashmap原理
hashmap和B树的区别,应用场景
怎么设计线程安全的hashmap
epoll和select区别
ET模式和LT模式
TCP连接建立后,server主机宕机client会怎么样,进程死掉会怎么样(第二个没搞懂意思,我说会返回RST,但是面试官说TCP连接应该还保持着,哪位大佬给解答一下)
知道哪些锁(互斥锁,读写锁,自旋锁,递归锁),应用场景
如果一直取不到锁怎么办
死锁的条件,怎么避免死锁
线程的哪些资源是共享的,哪些时不共享的
怎么设计内存分配器,怎么保证线程安全
调用read()后内核的处理流程
8.6 hr面,十五分钟
英语自我介绍
为什么选新加坡的岗位
家是哪的
比较看重什么
薪资重要吗
反问
感觉hr不是很有兴致,别是挂了吧
许愿OC
#虾皮提前批##面经##校招##Shopee##C++工程师#