2011-08-05 13 views
1

3つのワーカープログラムを作成するプログラムが1つあります。私の状況でのコミュニケーションの好ましい方法は、4つのプログラムすべてがアクセスできるメモリバッファーによるものです。共有バッファを実装する方法は?

ポインタ、参照、またはあらゆる種類のハンドラを子プロセスに渡す方法はありますか?

更新

メインプログラムは、主にUI、システムメッセージ、エラーなどを扱うながら3つのプログラムが..

を頂点データを変換している私はいくつかの方法がある願っています4つのプログラムがコンテキストを共有できるようにOpenCLを活用する。これが不可能な場合は、すべてのプログラムの頂点の配列にアクセスするのが良いでしょう。

私たちのターゲットプラットフォームは現在Windowsですが、可能な限りクロスプラットフォームにしておきたいと思います。 OpenCLを利用してこれを実装する方法がない場合は、このコードをいくつかの異なるプラットフォーム用にラップすることに戻ります。

+0

これは残念ながらプラットフォームに依存します( 'boost :: interprocess'を使わない限り)。ターゲットプラットフォームを指定してください。 –

答えて

1

どのような種類のデータが共有されているか、システムの他の制約/目標を少し説明すると、あなたの質問に答えるのが簡単になります。

なぜ私は共有バッファが良いと思いますか?それは、作業するデータにバッファ内のポインタを渡したいからですか?次に、プロセス間で作業したい場合は共有メモリが必要です。

リクエストに応じてクライアントにデータを送信するクライアント/サーバーアプローチはどうですか?

問題の詳細は、より良い回答を得るのに役立ちます。

1

これよりもやや広くなっていますオリジナルの質問は共有メモリバッファ上にありますが、設計、データ量、性能要件によって異なりますRedisや分散キャッシュのようなメモリ内のデータベースを調べることができます。特に、「パブリッシュ/サブスクライブ」の状況にいる場合は特に注意してください。

関連する問題