不愧是微信,问的贼细

很多 C++ 同学的项目都是 webserver,属于网络编程项目。今天来看看微信,是怎么考察网络和系统的,这次分享是校招实习的面经。


(资料图片)

问的问题还是挺深的,面微信的话,计算机基础还是得学深和学扎实一些。大家也可以试试看能否答出。

面经

存字符串用unordered_map还是用map好?为什么?要怎么优化?

有一个请求队列,有读者线程和写者线程 在同时操作这个共享的请求队列,属于什么样的读写模型 ?

一写多读模型的情况下怎么解决读写冲突的问题?加锁是一种方案,但是会影响性能,有没有更好的办法?

select和epoll有什么区别?

epoll中可以无限承载socket的连接吗?创建socket时的返回值是什么?

fd在系统中有限制吗?可以无限申请吗?

一个服务端进程最多可以和多少个客户端进行连接?和fd的数量有关吗?

假设这样一个场景,客户端在和服务端进行TCP的三次握手的过程中,突然间客户端宕机了,那么这个socket怎么处理?可以删除吗?是怎么删除的?

在服务端调用accept()之后,socket就是一直可读的吗?就是调用read()函数就一直可以读吗?会阻塞吗?

如果服务端read()函数发生了阻塞,对方客户端异常关闭了,一直没有发数据过来,服务端会一直阻塞吗?会导致服务端卡死吗?

在第七题中提到的这个情况,epoll可以解决这个问题吗?如果要识别这个问题,怎么识别?

linux进程创建线程的流程是怎么样的?

线程共享进程的资源在linux中是怎么实现的?

线程有自己私有的栈,那么这个栈的内存是被分配到哪里的?是放在进程所属的内存里面,还是说放在独立于进程外部的内存中?

什么是协程?协程有什么用?

场景题:一致性哈希相关

----

往期推荐

关键词:

推荐DIY文章
主机存在磨损或划痕风险 PICO4便携包宣布召回
穿越湖海!特斯拉Cybertruck电动皮卡可以当“船”用
vivoXFold+折叠旗舰开售 配备蔡司全焦段旗舰四摄
飞凡R7正式上市 全系标配换电架构
中兴Axon30S开售 拥有黑色蓝色两款配色
荣耀MagicBookV14 2022正式开售 搭载TOF传感器
it