我想实现一个简单的发布/订阅模式,其中:
单个发布者向其订阅者发布令牌(指向对象的指针)。发布者和订阅者都是独立的线程。我计划为每个订阅者添加线程安全队列,以便发布者可以在订阅者处理令牌时继续将令牌分发给订阅者。
如您所见,这意味着所有订阅者实际上共享相同的指针(注意:订阅者无论如何都不能修改指向的对象,所以没有问题)。一旦共享指针不再被任何订阅者使用,如果指针可以在最后一个订阅者线程完成后自动删除它自己,那就太好了。
这是使用智能指针的好地方吗?如果是这样,我应该使用哪些智能指针?
我在 Windows 上使用 MSVC2008 进行开发,并且正在使用 Intel TBB、Boost 和 Qt。