首页  >  文章  >  后端开发  >  C 是否提供了“std::shared_ptr”的非原子等价物?

C 是否提供了“std::shared_ptr”的非原子等价物?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-27 16:28:01504浏览

Does C   Provide a Non-Atomic Equivalent of `std::shared_ptr`?

std::shared_ptr 没有原子版本

问题: 是否有 std::shared_ptr 的非原子版本shared_ptr 存在于标准库之外吗?为什么 C 11 中不包含非原子版本?

答案:

1。非原子等效

std::shared_ptr 与标准库中的其他智能指针不同,它是原子的。虽然可能有第三方替代方案,但标准本身不提供非原子版本。

2.从 C 11 中排除

在 C 11 Rapperswil 会议上讨论了包含非原子 std::shared_ptr 的问题。反对将其纳入的论点包括:

  • 使用非原子版本的代码稍后在线程代码中使用的可能性,导致未检测到的问题。
  • 拥有“通用版本”的好处“shared_ptr,无论使用什么功能。
  • 原子性对性能的影响最小,通过移动构造和分配来减轻。
  • 用户实现自己的非原子引用计数智能指针的能力

经过考虑,LWG 最终拒绝了非原子 std::shared_ptr 的提议,理由是它缺乏明确的共识,而且利不大于弊。

以上是C 是否提供了“std::shared_ptr”的非原子等价物?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn