面灵AI

快手AI应用后端开发岗面经

轮次
一面
时间
2026-09
来源
牛客网

《面试题目》

  1. 线程池的核心参数如何配置,CPU密集型和IO密集型任务应如何设置线程数?
  2. 自定义线程池需要注意哪些拒绝策略、线程命名和异常处理问题?
  3. 为什么不建议直接使用 Executors 创建线程池?
  4. 如何计算多个区间中互不重叠区间的个数?
  5. 如何设计满额赠品页面的前后端交互?
  6. 如何测试 Agent 项目,单元、集成和压力测试分别覆盖什么?
  7. 消息队列消费失败时如何设计重试、死信和人工介入?
  8. 如何用 Redis 做消费幂等,key 的过期策略如何设计?
  9. 如何评测 Agent 效果并让 badcase 回流?
  10. 高合规场景下如何保证模型不越权?

《参考解析》

  1. 核心参数包括核心线程数、最大线程数、队列和拒绝策略,应根据任务耗时、CPU核数、IO等待和可接受延迟用压测校准。线程命名便于定位问题,任务异常要通过 Future 或统一执行器记录,不能静默丢失。
  2. Executors 的无界队列或按需创建线程可能导致队列堆积、线程数失控和 OOM。生产代码应显式指定有界队列、线程工厂和拒绝策略,并对拒绝做可观测处理。
  3. 区间按右端点升序排序,优先选择最早结束且与已选区间不冲突的区间,这是区间调度的贪心最优解。
  4. Agent 测试要把工具调用、状态流转和异常分支拆成单元测试;用真实或仿真工具做集成测试;再用固定数据集压测延迟、吞吐和失败率,并保留可复现样本。
  5. 消费失败应有限次指数退避重试,超过上限转入死信并告警,由人工决定重放或修复。消费端以业务唯一键做幂等,过期时间覆盖最大重试窗口,处理中的状态不能因 key 过期而被误判为可重复执行。
  6. 用标注集和 badcase 回流持续评测任务成功率、工具参数正确性、越权率和延迟。高合规动作必须经过 schema、权限、资源范围和幂等校验,模型只能提出结构化意图,不能直接改写业务数据。