腾讯面试总结
1.tcp断开连接时为什么要有timewait状态
2.画出tcp三次握手四次挥手状态切换图
3.libuv事件循环接口内部都是怎么实现的?libuv利用了什么机制?
4.协程与线程的区别是什么?为什么要有协程?如何用C实现协程?
5.nosql相比较关系型数据库有什么优点
6.分析下nginx源码?nginx反向代理和负载均衡是怎么实现的?
7.mapreduce实现原理是怎样的
8.dhcp协议交互流程如何
9.线程间同步有哪些锁
10.mongodb有哪些特点?分片机制具体是怎么样的?mongodb是如何持久化的?
11.docker的优势是什么?利用了操作系统什么机制?存在什么问题?
12.go语言相比较C有什么优点?如何用C实现go?
13.rsync的原理是怎样的?如果只修改文件头,那么如何做到高效增量同步?
14.对mysql了解多少
15.实现一套生产者、消费者接口
16.经常逛哪些开源社区,写知乎博客吗
17.volatile关键字作用是什么
18.c++基础知识
19.怎么评判一个磁盘的好坏?什么工具可以查看io占用情况
20.列出几个gdb命令并说明其作用?如何gdb调试一个正在运行的程序?
21.epoll解决了什么问题,什么是边沿触发和水平触发?epoll在内核是怎么实现的?
22.linux有哪些进程间通信方式?分别有什么特点?
23.tcp连接处理,如果只有listen没有accept可以完成三次握手过程吗?
24.recv函数返回0含义
25.了解过哪些服务器模型?leader-follow服务器模型是怎样的
26.有100本书,两个人轮流着拿,每次最多拿5本,至少拿一本,我先拿,怎么保证我拿到最后一本?
27.指针运算
28.服务器段进程挂掉或者服务器宕机,客户端分别会有什么反应?
29.实现一个memcpy函数
30.实现快速排序算法
31.分布式文件系统了解多少
32.泛域名是什么