请用C++实现一个线程安全的单例类,该类提供一个耗时的初始化函数 init()(如加载配置或数据),且必须初始化成功才能返回单例实例,否则返回 nullptr。请说明实现细节及线程安全的考虑。
考察说明
考察C++单例模式、线程安全实现及初始化失败处理的边界设计
回答思路
- 实现线程安全的单例获取,避免竞态条件
- 处理init()耗时及失败返回nullptr的逻辑
- 说明锁或原子操作的使用及性能权衡
- 讨论double-checked locking的正确性或替代方案
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。