4

複数のプロセス間でオブジェクトを簡単に共有できる Ruby 用のモジュールはありますか? プロセス間で共有できるプロセスセーフなキューとパイプをサポートする、 Python のmultiprocessingに似たものを探しています。

4

3 に答える 3

3

Ruby IOの機能を使用して、やりたいことがたくさんできると思います。スレッドではなく、プロセス間で共有していますよね?

その場合、IO.pipeは必要なことを実行します。Rubyには(私の知る限り)クロスプロセスキューを処理する組み込みの方法はありませんが、FIFOを使用することもできます(Unixを使用している場合)。

よりきめ細かいものが必要で、優れたスレッドサポートが必要な場合は、JRubyを使用すればjava.util.concurrentに便乗できると確信しています。MRIはかなりお粗末なスレッド化/並行性のサポートを持っているので、それがあなたの目標であるなら、JRubyはおそらく行くのに良い場所です。

于 2009-04-02T18:17:06.873 に答える
2

このライブラリに遭遇しましたが、まだ試していません。

Parallel::ForkManager — シンプルな並列処理フォーク マネージャー。

http://parallelforkmgr.rubyforge.org/

于 2009-04-03T07:53:23.340 に答える
1

シンプルなプロセス間通信を提供する DRb と、両方ともスレッドセーフなキューである Queue または SizedQueue を組み合わせると、必要なものが得られます。

また、 githubでホストされている beanstalkd もチェックしてください。

于 2009-04-02T17:40:28.820 に答える