为了保证制作简历的安全性和流畅性,建议您使用Chrome浏览器进行访问
乌龙茶跳跳 学校
APP 内打开
分享
评论
56

【互联网行业-腾讯】面试复盘 | 腾讯WXG三轮面经

腾讯一面 100min 8月17日【WXG】


实习内容


实习部门的工作介绍

谈谈你对tRPC框架的理解

语言+操作系统


IO多路复用中的select系统调用和Go语言中的select有什么区别

讲讲Go语言中的协程goroutine

Go语言如何对并发goroutine进行处理

死锁概念、如何解决死锁

并发问题可不可以不用锁处理

无锁编程如何实现

网络


讲讲TCP的三次握手、四次挥手

为什么要三次握手

TIME_WAIT状态出现在连接哪个阶段

TIME_WAIT状态连接过多如何解决

长连接会有什么问题

通用的连接池应该如何实现

TCP的滑动窗口机制

数据库+分布式


Redis为什么采用单线程

Redis的单线程模型是如何实现的

Redis如何实现分布式锁、锁的过期时间如何设置、如何避免加锁过程中的单点问题

Redis主从哨兵模式下master宕机,进行故障自动转移时,如何挑选新master

了解Redis的Gossip协议吗,讲讲

Redis是如何进行rehash的

你怎么看待最终一致性和强一致性,业务选用最终一致性时要考虑哪些因素

最终一致性的补偿性措施了解吗

讲讲你对MySQL事务的理解

了解2PC、3PC吗

数据结构与算法


有哪些排序算法

快排最坏时间复杂度多少,什么情况下会出现

讲讲红黑树原理

动态规划问题的解决思路一般是怎么样的

哈希原理

其他


了解docker、K8S、云原生吗

了解docker底层原理吗、自己有没有搭建过K8S集群

实习时是在普通开发机上还是在容器中开发的

接触过消息队列吗

自己有配置过Nginx,或者用Nginx进行过网站部署吗

撕题(二选一)


螺旋矩阵【lc54】

和为s的连续正数序列【剑指57】

设计题(二选一)


以拉链法实现一个哈希表【要求手写链表】

实现一个大根堆【实现建堆、弹堆顶两个操作】

腾讯二面 50min 8月18日


二面自我介绍环节都没有,简单确认简历上几个信息点后,便直接开始面试。


项目


介绍一个你觉得做的比较深入的项目,由于微信支付部门技术栈是C++,所以我讲了C++服务器项目

讲讲主从Reactor模式

为什么选用主从Reactor线程模型而不是单Reactor线程模型

主IO线程如何将客户连接分发给子IO线程的

【轮询分发至子IO线程任务队列+eventfd跨线程唤醒】

客户连接的分发有没有优化方案

【采用无锁队列通信】

如何处理各IO线程负载不均衡的情况

【采用权重轮询策略进行连接分发】

上述连接分配方案是轮询式的主动分发方案,有没有被动分发的方案

【维护一个客户连接池,由子IO线程根据自身负载情况去池中获取】

比较一下连接主动分发和被动分发两种方案的优缺点

【锁争用的激烈程度+客户连接的饥饿程度】

以上只是你的猜测,如何定量比较两种方案下锁的性能开销大小

【比较两种方案在固定时间窗口内的客户连接数量】

项目中的IO线程和工作线程为什么要分开

【提高吞吐量】

为什么吞吐量会提高呢,分析一下

在数据读写方面有哪些拷贝开销,分析一下能怎么优化

【网卡和磁盘等IO设备与内核缓冲区间的数据拷贝由DMA控制器完成,内核缓冲区与用户态缓冲区的数据拷贝由CPU完成。可采用零拷贝方案减少拷贝和上下文切换开销,如mmap、sendfile、splice等系统调用】

看过哪些书籍

看过哪些开源组件的源码

讲讲Muduo网络库的线程模型、客户连接是怎么分发的

服务器开启的线程数量和CPU核数的关系如何确定

【(线程IO等待时间/线程执行时间+1)*CPU核数】

多线程程序能否用协程进行优化、开启协程的话,线程数应该开多少?

协程和线程的区别

协程适用于哪种业务类型?

CPU有10个核,A:开启100个线程、B:开启10个线程,每个线程开10个协程。服务器用哪种方案效率高

实习


实习内容介绍

服务发现的原理了解吗

负载均衡怎么做的

缓存命中但数据库未命中会有什么问题

服务并发量有多大

实习收获

计算机基础


讲讲Mysql的乐观锁和悲观锁,分别在什么情况下使用

分布式系统一致性协议

分布式锁

零拷贝技术

反问环节


部门业务

面试流程【业务部门3轮+面委1~2轮+Hr面】

新人培养机制

面试表现评价

腾讯三面 40min 8月20日


三面面试官应该是组长,也没有自我介绍环节,直接问问题。


实习多久了、为什么没考虑在实习部门转正而考虑投微信

通过什么方式了解到我们部门的岗位的

在学校的研究方向

讲讲阻塞IO、非阻塞IO、同步IO、异步IO的区别

Linux中常见的IO多路复用函数有哪些?它们属于哪种IO模式

看你简历上的东西都偏底层,是实验室要用到这些技术还是自己感兴趣

C++智能指针了解吗,讲讲shared_ptr原理

比赛内容

实习内容

撕题


实现一个shared_ptr智能指针类,要求含有构造函数、析构函数、拷贝构造函数、拷贝赋值运算符四个成员函数

总结


WXG面试还是有一定难度的,一面深挖基础,语言方面由于一面面试官平常用Go,所以问了些Go知识,没怎么问C++。二面深挖项目,连算法题都没让撕。三面由于面试官后面有会议,所以整体问的不多。后续还有1~2轮面委面。

部门整体技术栈是C++,因此面试时让自己实现一个类的题目较多,像哈希表、大顶堆、智能指针等,平常只刷核心代码模式下的算法题可能还不太够,还没面试的小伙伴们可以参考参考,多准备准备这方面。

讨论


面试中有一些问题不是很清楚,大家可以讨论下:


长连接通信会有什么问题

最终一致性的补偿性措施有哪些

协程适用于哪种业务类型

发布时间:2021年08月31日
用户头像
我来说两句…
暂无评论 暂无评论