0

私は、他のプラグインに役立つ結果を時々生成する、主に独立したプラグインまたはモジュールで構成される C++ アプリを設計しています。たとえば、分析モジュールはいくつかの有用なデータに遭遇し、それをアクション モジュールに送信します。各モジュールは独自のスレッドで実行されます。これは、アクション モジュールが可能な速度でデータを処理している間、分析モジュールがデータの収集を継続できるようにするためです。

適切なメッセージ パッシング アーキテクチャ/デザイン パターンを探しています。このstackoverflowスレッドはいくつかの提案を提供しますが、プレーンなインターフェースがマルチスレッド環境で機能するかどうかはわかりません.

私は、各モジュールがチャンネルで何かをブロードキャストし、それに興味のあるモジュールがリッスンする、ある種のチャンネルベースのアーキテクチャを持つことを考えていました。リベラルなライセンスの下で既製のライブラリがいくつかある場合は、より良いです。

4

2 に答える 2

1

並行性フレームワークのように機能するZeroMQライブラリも見てみたいと思うかもしれません。このライブラリを使用すると、コンポーネントは名前付きのZeroMQソケットにメッセージを送信することで相互に通信します。多くのソケットタイプ(TCP、IPC、inproc)があり、要求/応答およびパブリッシュ/サブスクライブメッセージングに使用できるいくつかのパターンがあります。

于 2012-12-22T16:03:11.257 に答える