腾讯安全部门后台开发实习一面
一、自我介绍
二、项目介绍
- 项目追问地怀疑人生
- 项目用到了rust,于是问如何学习一门新的语言,rust的特点
- 项目用到了C++,用了什么,STL or Boost?
三、redis
- redis是单线程的吗
- redis有那些命令是原子指令
- 看过redis的源码吗?(有序集合zset底层是跳表)描述跳表的原理,
跳表怎么插入数据,还有什么数据结构可以代替跳表(红黑树)?
为什么不用红黑树?
四、C++、Java语言相关
- C++智能指针
- Java Future和CompletableFuture是什么?runnable和callable的区别?
future如何得到线程运行的结果,如果其线程异常退出的话,
会怎么样?如何判断线程异常退出了 - Java synchronized等关键词
五、计算机网络
- 套接字
- 如何设计一个应用层协议
六、linux
- linux进程的pid和ppid
- 如果一个子进程的父进程被kill了,该子进程还会存在吗?
如果存在的话其父进程是谁?七、算法题
- 没有加载出来,换了一道并发控制题。一个函数,会被调用很多次,
现在我们希望只调用一次,其他线程调用的话不会成功但也不应该报错八、反问
- 技术栈
- 我在什么地方还应该提升?(各方面还行,但可能最近在用java的原因,所以底层有点,
应该是跳表没有描述清楚)