【发布时间】:2010-12-02 07:49:38
【问题描述】:
我需要使用 shared_ptr 和 weak_ptr 智能指针来解决一个场景。
两个线程,线程 1 和 2,正在使用一个名为 A 的共享对象。每个线程都有一个对该对象的引用。线程 1 决定删除对象 A,但同时线程 2 可能正在使用它。如果我使用 shared_ptr 在每个线程中保存对象 A 的引用,则该对象不会在正确的时间被删除。
我应该怎么做才能删除该对象,并防止同时使用该对象的其他线程出错?
【问题讨论】:
-
什么时候“应该”删除对象?使用
shared_ptr,它会在没有人使用时被删除。您无需手动删除该对象,您相信shared_ptr会为您执行此操作。
标签: c++ multithreading boost concurrency ownership-semantics