各种一面总结
Posted NearXDU
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了各种一面总结相关的知识,希望对你有一定的参考价值。
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)
以上是关于各种一面总结的主要内容,如果未能解决你的问题,请参考以下文章