后端岗位面试题更新 2026-08-05

手撕代码:用 Golang 实现一个支持 set 和 get 的并发安全 map,当 get 的 key 不存在时,要阻塞等待该 key 直到超时。你如何实现?

高德地图后端开发编码实现技术原理Go

考察说明

考察并发安全、阻塞等待、超时控制与同步原语的使用

回答思路

  1. 说明数据结构设计,如使用 sync.Mutex 和 map 及条件变量
  2. 实现 set 写入并唤醒等待的 getter
  3. 实现 get 阻塞等待,支持超时退出
  4. 处理并发正确性,如防止数据竞争和死锁
  5. 讨论 key 可能永不出现时的超时行为
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。