字节视频架构C++客户端实习一面凉经

为什么要日志要实现异步?同步写日志会导致什么?(项目相关)

C++的lamada表达式介绍一下?

C++中像lamada一样可以提供给别人调用的对象还有什么?(没听懂,不知道,提醒我类似回调函数,还是不懂,面完问了一下ChatGPT,才知道是想让我说函数指针,仿函数之类的)

生产者消费者模型具体是怎么实现的?(大概说了一下怎么实现同步的,说的不好)

现在有十个线程,都要执行相同的任务a,b,c……任务,所有的任务a执行完才能执行任务b,该怎么去进行同步?(这里题意一开始没有听明白,我以为是十个线程都顺序执行abc,寻思这顺序执行不就行了吗?磕磕巴巴说用信号量完成一个提交一个,然后面试官又说第一个执行a和最后一个执行a的线程应该干什么?我更懵了,瞎说了一个最后一个执行要用条件变量唤醒b,面试官没有评价,我到现在也没明白他这道题的意思)

基于udp设计一套传输文件系统,怎么设计?(没遇到过这种题,先说要怎么设计头部,他引导我让我说怎么实现可靠传输,我说发送时给出总大小和固定的每个分片大小,再给出序号,接收方给出ACK,他又问我怎么控制发送速度,我说模拟TCP的发送窗口和接收窗口的机制,由接收方通知发送发接收窗口的大小,然后就通知我面试结束了)

我问为什么没有算法题环节,面试官说我基础不行,缺乏大型项目经验(所以我才来找实习啊!)

中间可能有漏掉的想不起来了,第一次面试字节,感觉这波面评烂掉了,字节果然不是我能碰瓷的。
全部评论
10个线程那题说的应该是10个线程都执行完a以后,作为一个时间节点,而后10个线程再都执行b。可以通过一个变量tmp和一个条件变量,一把互斥锁来实现,第一个执行a的线程应该把tmp清0,tmp++,然后执行完任务阻塞在条件变量上,最后一个执行a的线程发现tmp==10,就唤醒所有阻塞在条件变量上的线程,大家一起进入下一个阶段执行b,。
4 回复 分享
发布于 2023-06-20 18:50 北京
佬,我看了你发的这些问题之后瞬间觉得“算了,还是毁灭吧”,今天下午的字节我差不多可以放弃准备了🤦‍♂️
1 回复 分享
发布于 2023-06-25 11:41 广东
感觉那个十个线程的问题,应该得用有限状态机?每个线程最后更新状态
点赞 回复 分享
发布于 2023-06-20 17:15 北京
太惨了,兄弟
点赞 回复 分享
发布于 2023-06-21 00:41 四川
好难啊不知道udp怎么传输文件呢,嗯背http3的八股文行吗?
点赞 回复 分享
发布于 2023-06-22 15:05 江苏
感觉我一个也答不上来
点赞 回复 分享
发布于 2023-06-23 15:12 浙江

相关推荐

头像
10-16 09:14
已编辑
门头沟学院 C++
影石 音视频渲染 n*15
这offer是俺拾嘞:华为可以
点赞 评论 收藏
分享
10-27 12:30
西京学院 C++
快手 基础架构开发 月薪不清楚,一年发16薪,4个月年终
点赞 评论 收藏
分享
8 62 评论
分享
牛客网
牛客企业服务