単純なパブリッシュ/サブスクライブパターンを実装したいと思います。
単一のパブリッシャーは、そのサブスクライバーにトークン(オブジェクトへのポインター)を公開します。パブリッシャーとサブスクライバーはすべて独立したスレッドです。サブスクライバーがトークンを処理している間、パブリッシャーがトークンをサブスクライバーに配布し続けることができるように、各サブスクライバーにスレッドセーフキューを追加する予定です。
ご覧のとおり、これはすべてのサブスクライバーが実際に同じポインターを共有していることを意味します(注:サブスクライバーはとにかくポイントされたオブジェクトを変更できないため、問題はありません)。共有ポインターがどのサブスクライバーによっても使用されなくなったら、最後のサブスクライバースレッドが使用された後、ポインターがそれ自体を自動削除できると非常に便利です。
これはスマートポインタを使用するのに適した場所ですか?もしそうなら、私はどのスマートポインタを使うべきですか?
私はMSVC2008を使用してWindowsで開発し、Intel TBB、Boost、およびQtを使用しています。