字节暑期实习一面凉经
04-07 这周的面试。已经挂了。发面经攒人品
八股和项目大概问了 25 分钟。我手撕做得太久了。
自我介绍
八股
- 了解 c++17 中的哪些新特性?介绍一下
- 说了结构化绑定
- c++20 呢?
- 说自己了解概念和约束
- 追问是否用过概念
- 知道万能引用吗?它应该在什么时候使用?举一个标准库的例子?
- 看你写了了解 java,go,rust,大概是怎么样的程度?了解 rust 里面的生命周期吗?
- 当用户在浏览器里面请求一个网站的时候,计算机里面会发生什么?从网络协议栈,包括 https,http 协议来回答
- 介绍 dns 的查询方式
- 了解 https 如何建立连接吗?
- 介绍进程和线程的区别
- 进程间的通讯方式。你用过哪些?
- 你在用 socket 编程的过程中,有没有遇到过丢数据的场景?
- tcp 是怎么保证不会丢数据的?
项目
简历只有一个重写 muduo 库。
- 介绍你写的网络库,工作流程,有哪些线程,每个线程是如何协作的
- 如何传新 tcp 连接的文件描述符的?
- 工作线程需要监听用户 fd 的数据吗?
- worker 是不是会一直持有一个连接?怎么做负载均衡?你怎么分配任务?
- 如果你要做负载均衡,你准备怎么做?
- 你的 worker 需要做负载均衡,那你的 accept 线程有负载均衡的问题吗?它可能会有什么问题?
- accept 线程也有性能瓶颈,你有更好的办法吗?
- 你认为 acceptor worker 模型架构的缺点是什么?
- 面试官提示:你要想,有一个连接在建立之后,它要经过复杂的流程才能被处理?连接关闭之后,如果又建立一个连接,它又需要走一遍这个流程
- 在你的这个架构里面,每次都需要和 acceptor 交互,然后投递给 worker,这个过程中是不是有一定的资源开销成本,这里的吞吐会不会成为瓶颈?
- 假如你有多个 acceptor,你认为它还有额外的缺点吗?
做题
重组 n 个迭代器,是《合并 K 个升序链表》变式。
要求组合出一个新的迭代器,依次返回“从 n 个迭代器各自的有序数组,按序合并后的数组的”数字。
#暑期实习##字节##C++一面##面经#