1

並列計算コースの演習をしなければなりません。MPJ Expressを使用して、タスクを複数のプロセス(私の場合は5つのプロセス)に分散しました。正常に機能しているすべてのサブタスクを解決しました。次に、教授が実行するサブタスクを選択できるように、単純なユーザーダイアログを実装します。たとえば、「割り当て1を実行する場合は、「1」を入力してください。次のコードを使用して、コンソールから入力を読み取りました。

 InputStreamReader isr = new InputStreamReader(System.in);
                BufferedReader br = new BufferedReader(isr);
                System.out.println("Enter a number between 1 and 4");
                String s = br.readLine();

5つのインスタンス(プロセスごとに1つのインスタンス)でアプリケーションを実行する.batファイルを使用してアプリケーションを実行する必要があるため、コンソール入力を特定のプロセスに「マッピング」することはできません。そのため、ユーザーの入力を待っている間、私のアプリケーションはハングし続けます。

誰かが私がこの問題を克服する方法を持っていますか?よろしくお願いします!

4

1 に答える 1

0

Scatter操作に何らかのプロトコルを実装して、ユーザーの入力を分散させてみませんか。たとえば、親プロセスから受信したメッセージをペアとして扱います:(コマンドコード、コマンドデータ)。子プロセスで少なくとも2つのコマンドコードを処理します。

  1. ユーザー入力を処理する場合:現在のプロセスIDがユーザーによって要求された実行と同じであるかどうかを確認します。同じである場合は、操作を実行します。
  2. アプリケーションの開始時に配布されたデータを受信するため。
于 2012-06-11T09:37:02.800 に答える