宇视科技线下三面连轴:技术面问 UDP 收包,HR 面问有没有男朋友
- 轮次
- 技术/HR/主管
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
- 线程和进程有什么区别?
- 队列和数组有什么区别?
- 数组如何实现队列的双向遍历?
- 项目里提到的资源优化具体是什么?
- 进程通信方式有哪些?多线程通信方式有哪些?
- 互斥锁在什么情况下使用?
- 如果一个线程只读、一个线程只写,需要加锁吗?
- TCP 和 UDP 的区别与优缺点是什么?
- UDP 第一次发送 200 字节、第二次发送 300 字节,实际接收多少字节?
- Linux 和 FreeRTOS 有什么区别?
- IIC 总线介绍一下。
- AI 编程了解吗,使用情况如何?
- 对 skill、MCP 有了解吗?
- (HR)介绍荣誉奖项、自我介绍。
- (HR)平常教研室的工作时间?强度大一些是否接受?
- (HR)目前 offer 情况?有没有男朋友?家庭情况?家里同意在西安发展吗?
- (HR)讲一两个你觉得含金量最高的比赛。
- (HR)班干部具体做了什么?分享一件压力最大的事。
- (主管)对宇视有什么了解?
- (主管)项目深挖:创新点、技术路线、为什么不去实习。
- (主管)期望薪资是多少?
《参考解析》
**「一个线程只读、一个线程只写要不要加锁」**这题的正确答法是分情况:单字节/对齐的原子读写不会撕裂,但多字节结构体或跨字段一致性仍需锁;即便不撕裂,还要考虑可见性与编译器/CPU 重排(C/C++ 里需要 atomic 或内存屏障)。所以工程结论是「默认加锁或用原子类型,除非能证明是单字且无一致性要求」。
UDP 两次发送收到多少字节:UDP 保留消息边界,一次 sendto 对应一次 recvfrom,所以正常情况是分别收到 200 和 300,不会合并;但可能丢包、乱序、重复,MTU 超了会分片(IP 层重组失败就整包丢)。TCP 则相反,是字节流会粘包,必须自己定界。
Linux vs FreeRTOS:Linux 有 MMU、进程隔离、虚拟内存、丰富的驱动框架与调度策略(CFS/实时优先级),适合复杂应用;FreeRTOS 是微内核式实时调度器,无 MMU(多数移植)、任务共享地址空间、抢占式优先级调度、内核小、确定性好,适合 MCU。两者在同步原语(互斥量/信号量/队列)概念上是相通的。
IIC 总线:两线 SCL/SDA、开漏 + 上拉、7 位地址(也有 10 位)、起始/停止条件、ACK/NACK、时钟拉伸;速率标准模式 100k、快速模式 400k、高速 3.4M。常见坑:上拉阻值与总线电容导致上升沿慢、多主仲裁、器件地址冲突。
**「数组如何实现队列的双向遍历」**这类题面试官在测思维:环形缓冲用 head/tail 与取模索引,正序从头到尾、逆序从尾到头,注意区分「空」与「满」(牺牲一个槽位或用计数)。
HR 面的私人问题(有没有男朋友、家庭是否同意在西安发展)在西北硬件公司很常见,本质是稳定性评估。照实回答并给一个明确的地域意愿,比含糊更有利。
**主管面的「为什么不去实习」**要给出具体原因 + 你做了什么替代(项目、竞赛、开源),别让答案听起来像没找到实习。