我想实现一个简单的发布/订阅模式,其中:
一个单独的发布者向其订阅者发布一个令牌(指向一个对象的指针)。发布者和订阅者都是独立的线程。我打算为每个订阅者添加线程安全队列,以便发布者可以在订阅者处理令牌时继续分发令牌。
正如您所看到的那样,这意味着所有订阅者实际上共享相同的指针(注意:订阅者不能以任何方式修改指向的对象,因此没有问题)。一旦该共享指针不再被任何订阅者使用,如果最后一个订阅者线程完成了对它的使用,它将自动删除。
这个场景适合使用智能指针吗?如果是这样,我应该使用哪种类型的智能指针?
我使用的开发环境是Windows+MSVC2008,同时使用Intel TBB、Boost和Qt。
一个单独的发布者向其订阅者发布一个令牌(指向一个对象的指针)。发布者和订阅者都是独立的线程。我打算为每个订阅者添加线程安全队列,以便发布者可以在订阅者处理令牌时继续分发令牌。
正如您所看到的那样,这意味着所有订阅者实际上共享相同的指针(注意:订阅者不能以任何方式修改指向的对象,因此没有问题)。一旦该共享指针不再被任何订阅者使用,如果最后一个订阅者线程完成了对它的使用,它将自动删除。
这个场景适合使用智能指针吗?如果是这样,我应该使用哪种类型的智能指针?
我使用的开发环境是Windows+MSVC2008,同时使用Intel TBB、Boost和Qt。