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

C++20 中 std::shared_ptr 是否线程安全?

米哈游后端开发游戏风险判断技术原理C++

考察说明

考察对 shared_ptr 线程安全语义的理解,包括控制块操作与所指对象访问的区别

回答思路

  1. 明确指出 shared_ptr 对象本身(同一实例的读写)不是线程安全的
  2. 说明引用计数(控制块)的递增和递减是线程安全的
  3. 解释同时读取同一 shared_ptr 副本是安全的,但写操作需同步
  4. 指出所指对象的访问不加锁也不安全,需外部同步
  5. 结合 multi-thread 场景说明竞态条件
本题已收录答题指导

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

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