gpt4 book ai didi

c++ - 创建一个非线程安全的 shared_ptr

转载 作者:可可西里 更新时间:2023-11-01 15:20:44 24 4
gpt4 key购买 nike

我正在开发一个多线程程序,但有一个 UI 组件广泛使用 std::shared_ptr 来管理元素。我可以保证只有一个线程会使用这些 shared_ptrs。

有没有一种方法可以定义一个不会产生线程安全引用计数开销的 shared_ptr?

它可以基于 boost::shared_ptr 或 std::shared_ptr。

编辑:感谢提到 intrusive_ptr 的回答。我忘了提到我还需要 weak_ptr 功能,所以排除了它。

更新:我的答案是使用 Boost 中的 local_shared_ptr。查看来自“他漫步”的评论

最佳答案

Andrei Alexandrescu 在 CppCon 2014 上谈到实现您自己的单线程共享指针类(带有一些额外的优化)

观看视频 here

和幻灯片 here

我真的认为标准或 boost 应该提供一个模板参数,以便在它们的共享指针中使用原子引用计数......

关于c++ - 创建一个非线程安全的 shared_ptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6593770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com