我正在研究一个多线程程序,但有一个UI组件,它广泛使用std :: shared_ptr来管理元素.我可以保证只有一个线程会使用这些shared_ptrs.
有没有办法定义一个不会导致线程安全引用计数开销的shared_ptr?
它可以基于boost :: shared_ptr或std :: shared_ptr.
编辑:感谢您提及intrusive_ptr的答案.我忽略了提到我还需要weak_ptr功能,以便将其排除在外.
更新:我的答案是使用Boost的local_shared_ptr.看看'他漫步'的评论
现在将其添加为已接受的答案。Boost local_shared_ptr 是一个单线程引用计数智能指针,它使用非原子操作来提高速度:
https://www.boost.org/doc/libs/1_65_0/libs/smart_ptr/doc/html/smart_ptr.html#local_shared_ptr
| 归档时间: |
|
| 查看次数: |
2971 次 |
| 最近记录: |