首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++11 shared_ptr引用计数(增量/减少)线程安全/原子吗?

C++11 shared_ptr引用计数(增量/减少)线程安全/原子吗?
EN

Stack Overflow用户
提问于 2015-08-24 15:00:05
回答 2查看 281关注 0票数 0

C++11 shared_ptr引用计数(增量/减少)线程安全/原子吗?

  1. 请分享关于C++11 shared_ptrs线程安全的见解。
  2. 是否有任何相关的问题和可能的数据竞赛。
  3. 它能用于异步编程吗?
EN

回答 2

Stack Overflow用户

发布于 2015-08-24 15:13:04

如果您有两个线程,每个线程对同一个对象都有一个shared_ptr,那么涉及shared_ptr引用计数的那些线程的操作将是原子的。例如,如果两个线程同时销毁它们的shared_ptr,并且不存在对对象的其他引用,那么确切地说,其中一个线程将销毁该对象。

当然,通过shared_ptr并不能使对象本身的操作线程安全。如果两个线程都在访问同一个shared_ptr (而不是对同一个对象的不同shared_ptr),那么该访问将不会自动是线程安全的。

票数 3
EN

Stack Overflow用户

发布于 2015-08-24 15:11:33

是的,它是线程安全的。引用计数(增量/减少)发生在const-合格成员(例如副本构造的来源)之下,第17章的措辞实际上是说“同时的const-访问应该是线程安全的”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32185509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档