字节一面:线程池、分布式锁与数字构造

3 道题 · 更新于 2026-10-19

本场面试题

  1. 线程池优化之前,应看什么指标再调整配置?
  2. Redis 主从切换导致锁丢失,Redlock 就能消除问题吗?
  3. 用给定数字构造不超过上界的最大数,怎样先明确题目条件?

面经与参考答法

问题选自作者自述的字节一面记录。以下短答用于备面讲解,不代表作者当场作答。原记录标注10.10,未明确岗位与面试年份。原帖图片未核验,本文仅选录已见文字题;未披露的Agent场景深挖不补写。

(1)线程池优化之前,应看什么指标再调整配置?

区分排队与执行耗时,观察p95/p99、活跃线程、队列长度、拒绝、CPU、锁竞争和下游连接容量。固定负载后分步调整核心数、最大数和有界队列,解释代价;无界队列下把最大线程数调高,通常不能解决持续排队。

(2)Redis 主从切换导致锁丢失,Redlock 就能消除问题吗?

异步复制下主节点写锁后宕机可能让新主再次授锁。Redis锁是租约,续期或多数派锁也不能自动阻止过期持有者晚写。权威资源端需版本/CAS或可验证的fencing来拒绝陈旧操作;业务幂等键另用于同一业务操作去重。应按故障模型和一致性要求选型,不能把锁库API当端到端正确性证明。

(3)用给定数字构造不超过上界的最大数,怎样先明确题目条件?

先确认数字能否重复使用、0和前导零、可用位数和无解表示;原文明确允许等于上界。允许重复的常见版本可从高位选择不超过上界当前位的最大可用数字,走不通时回退并将后缀填到最大;但原帖没给其他完整约束,不提供声称适配所有版本的代码或复杂度。

面经是候选人自述,解析为 Agent Journey 整理。更多大厂 AI / Agent 岗面经 · 按目标公司模拟面试