各种一面总结

3月以来开始春招找实习,中断了一些学习内容,开始复习,电面笔试等等,记录一下。面试公司包括:BAT、新浪微博,笔试公司,完美世界,360。被问到的问题大概就是这些吧,其实老生长谈了,都是一些常见的问题。
1.线程进程区别
2.extern 用法
3.top K问题 (说了堆,面试官又说如果K比较大,我说n-k维护一个小的堆,那相反的就是所求。。面试官还不满意,问有没有不是堆的办法,我说不清楚,面试官后来说先通过二分找到Kth,再用快排)
4.static的用法
5.进程间通信都有哪些,优缺点等
6.多线程同步
7.线程池如何实现 (说了用条件变量实现)
8.new和malloc区别
9.如何避免内存碎片 (内存池)
10.select和poll的区别 (从编程的角度说了下)
11.epoll优点 (简单说了下红黑树mmap和双向链表)
12.单例模式的实现C++ (static + dlc)
13.redis的事务简介 (multi watch exec)
14.条件变量的虚假唤醒
15.构造函数成员变量构造顺序 (声明顺序)
16.平时看什么书(说了UNP 和APUE muduo redis nginx)
17.Reactor和Proactor简介
18.分布式锁? (简单介绍了一下redis set NX)
19.信号都有哪些?(回到就知道 SIGCHLD和SIGINT)


20.考虑一种情况:多线程同时向一个fd写数据,是每个线程写完并收到对端回应后另一个线程再写,还是其中一个线程写完,另一个线程直接写。
答:当时回答从原子性和多线程同步去考虑,表示要等待线程收到回应另一个线程再写,面试官说这样效率太低,表示其中一个写完不用等待另一个就开始写。

21.如何避免死锁(回答说用RAII编写风格构造函数,面试官问还有吗,我说还可以用shared_ptr来代替锁)
22.面试官问多进程监听同一个描述符,当连接来了会发生什么(我说了epoll惊群和nginx用accept_mutex)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值