C++20 中 std::shared_ptr 是否线程安全?
考察说明
考察对 shared_ptr 线程安全语义的理解,包括控制块操作与所指对象访问的区别
回答思路
- 明确指出 shared_ptr 对象本身(同一实例的读写)不是线程安全的
- 说明引用计数(控制块)的递增和递减是线程安全的
- 解释同时读取同一 shared_ptr 副本是安全的,但写操作需同步
- 指出所指对象的访问不加锁也不安全,需外部同步
- 结合 multi-thread 场景说明竞态条件
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。