面灵AI→

宇视科技线下三面连轴:技术面问 UDP 收包,HR 面问有没有男朋友

轮次
技术/HR/主管
时间
2026-10
来源
牛客网

《面试题目》

  1. 线程和进程有什么区别?
  2. 队列和数组有什么区别?
  3. 数组如何实现队列的双向遍历?
  4. 项目里提到的资源优化具体是什么?
  5. 进程通信方式有哪些?多线程通信方式有哪些?
  6. 互斥锁在什么情况下使用?
  7. 如果一个线程只读、一个线程只写,需要加锁吗?
  8. TCP 和 UDP 的区别与优缺点是什么?
  9. UDP 第一次发送 200 字节、第二次发送 300 字节,实际接收多少字节?
  10. Linux 和 FreeRTOS 有什么区别?
  11. IIC 总线介绍一下。
  12. AI 编程了解吗,使用情况如何?
  13. 对 skill、MCP 有了解吗?
  14. (HR)介绍荣誉奖项、自我介绍。
  15. (HR)平常教研室的工作时间?强度大一些是否接受?
  16. (HR)目前 offer 情况?有没有男朋友?家庭情况?家里同意在西安发展吗?
  17. (HR)讲一两个你觉得含金量最高的比赛。
  18. (HR)班干部具体做了什么?分享一件压力最大的事。
  19. (主管)对宇视有什么了解?
  20. (主管)项目深挖:创新点、技术路线、为什么不去实习。
  21. (主管)期望薪资是多少?

《参考解析》

**「一个线程只读、一个线程只写要不要加锁」**这题的正确答法是分情况:单字节/对齐的原子读写不会撕裂,但多字节结构体或跨字段一致性仍需锁;即便不撕裂,还要考虑可见性与编译器/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 面的私人问题(有没有男朋友、家庭是否同意在西安发展)在西北硬件公司很常见,本质是稳定性评估。照实回答并给一个明确的地域意愿,比含糊更有利。

**主管面的「为什么不去实习」**要给出具体原因 + 你做了什么替代(项目、竞赛、开源),别让答案听起来像没找到实习。