C++11 shared_ptr引用计数(增量/减少)线程安全/原子吗?
发布于 2015-08-24 15:13:04
如果您有两个线程,每个线程对同一个对象都有一个shared_ptr,那么涉及shared_ptr引用计数的那些线程的操作将是原子的。例如,如果两个线程同时销毁它们的shared_ptr,并且不存在对对象的其他引用,那么确切地说,其中一个线程将销毁该对象。
当然,通过shared_ptr并不能使对象本身的操作线程安全。如果两个线程都在访问同一个shared_ptr (而不是对同一个对象的不同shared_ptr),那么该访问将不会自动是线程安全的。
发布于 2015-08-24 15:11:33
是的,它是线程安全的。引用计数(增量/减少)发生在const-合格成员(例如副本构造的来源)之下,第17章的措辞实际上是说“同时的const-访问应该是线程安全的”。
https://stackoverflow.com/questions/32185509
复制相似问题