一面 2021-6-10
时间:7:00 pm-8:22 pm
- 自我介绍
- 然后问我两个项目:
- Raft 协议的项目,问了比较久
- 如果外部一个客户端需要提交一个数据,什么时候返回成功?是大多数复制完成之后再返回?
- 因为项目的 Go 实现的,继续问了 Go 语言的特性,Go 调度器的实现了解过没有?协程如何调度的。
- 毕设的文件系统:
- PMEM 的延时
- 调度算法
- Raft 协议的项目,问了比较久
- 网络编程:多线程和多进程的程序写过没有,主要关心实战情况
- socket编程
- select/poll/epoll了解过吗?
- 网络中传输数据如何分包,应该是问 TCP 粘包问题
- 顺便问了知不知道 protobuf
- gRPC 实现 protobuf 的关键点在哪?
- 跨平台,跨语言
- 不同机器下定义的基本数据类型长度不同,考虑大端存储还是小端存储
- 进程的通信方式
- 数据库:
- MySQL 使用的引擎:InnoDB 之类
- 如何建索引?为哪个键建索引?
- Reids 的情况,哪里用过
- TCP 的三次握手,四次挥手,TIME_WAIT
算法:<= 20min,vscode,共享屏幕,手写,手动构造样例。两道大水题。
- 反转链表
- 二分查找
二面 2021-6-12
> 面试官迟到 40+ min 。。。。。。10:40+am-11:40+am
- 问项目,raft 协议
- 脑裂的情况如何解决
- 日志复制的具体过程
- CAP 理论,日志的理解:日志只是记录操作,并不一定数据的直接修改
- 后面问 Go 的知识:
- GMP 了解过没有?没有,还是继续问。
- GMP 如果一个协程阻塞了,如何调度?
- Context 有没有了解过。
- Go 语言哪些是按引用传递的。
- C++ 知识:
- map 的实现:红黑树
- 用迭代器访问元素,然后tmp = it, it = it->next,然后把把 tmp 删了,后面迭代器还可以继续执行吗?
- malloc 的实现
- map 的实现:红黑树
- 进程和线程的区别
- 程序的内存布局
- Go 的协程和线程的优势
- I/O 密集型和计算密集型哪一个适合 Go 的协程。
基本没怎么答对,应该是凉了。
全部评论
(9) 回帖