std::shared_ptr 是线程安全的吗?请从引用计数、对象所有权和并发访问不同场景分析。
考察说明
考察对智能指针线程安全性的精确理解,区分引用计数安全与对象访问安全
回答思路
- 说明引用计数的增减是原子操作,多线程同时拷贝和析构 shared_ptr 时不产生数据竞争
- 指出对同一 shared_ptr 对象的并发非 const 操作(如调用 reset)不是线程安全的
- 强调 shared_ptr 指向的对象的读写需要额外同步,shared_ptr 本身不提供对象访问保护
- 能结合标准与锁或原子操作说明正确使用方式
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。