0

一連の変換を適用して、 aninputを anに解析しようとしています。実行はチェーンになります:outputt0, t1, ..., tn

input -> t0 -> t1 -> ... -> tn -> output

ボトルネックにならないように、一部の変換は並列化する必要があります。

Java でこのようなプロセス チェーンを作成するためのフレームワークはありますか? 手動で行う方法は知っていますが ( Java の処理チェーンでジョブをキューイングするなど)、特にフレームワークを探しています。

  • キャッシュ、待機などを伴う、より長い (部分的に) マルチスレッド化されたチェーンの複雑さは、すぐに複雑になる可能性があります
  • 私はそのようなチェーンをいくつか持っており、標準ライブラリでカバーされる可能性のあるものを再発明することは避けたい
4

3 に答える 3

1

fork /join フレームワーク(jdk 7) が探しているものだと思います。タスクの依存関係を指定し、使用可能なリソースに応じてジョブをより並列なチャンクに分割できます。

于 2013-07-15T14:27:55.937 に答える
1

このような変換チェーンを表現するために、さまざまな実行モデルが存在します。変換は、入力キューから読み取るループを持つスレッド、または各着信メッセージを処理するメソッドを持つオブジェクト (フードの下に隠されているスレッドとループ) にすることができます。変換には、単一の入力または複数の入力があります。後継者を認識して結果を直接送信するか、メソッドから値を返すだけで、個別に記述されたトポロジーがその後のメッセージ ルーティングを処理します。結果を保持するためのスペースの可用性は、変換行為が開始されたときに考慮される場合と考慮されない場合があります。変換アクトは非常に短い場合があるため、メッセージ パッシングのオーバーヘッドが大きく、メッセージ パッシングは慎重に最適化する必要があります (ディスラプターを参照)。または、各メッセージのラッパー オブジェクトを生成する通常のリンク キューで十分です。

要件が分からないとアドバイスが難しいと言われています。どのモデルと実装が存在するかを調べて、自分のケースに最も適したものを見つける必要があります。詳細を知らずに、 「あなたが探しているのはフレームワーク XYZ だと思います」などのアドバイスは、XYZ 以外のフレームワークをほとんど知らない人としてアドバイザーを説明するだけです。それにもかかわらず、私はあえてDataflow Framework for Javaを見ることをお勧めします。そのモデルは十分に到達しますが、制限があります (実行ノードがブロックされないなど)。

于 2013-07-15T16:13:15.470 に答える