2016-04-26 12 views
0

コンポーネントレベルとノードレベルという2つのレベルの並列処理を実装する必要があります。次の図に示すように、各コンポーネントにはいくつかのノードが含まれ、各ノードは個別のスレッドで処理される必要があります。コンポーネントは独立しているとします。 Javaプログラミング言語でこれらの2つのレベルの並列処理を実装する方法を教えてください。あなたは子スレッドに作業を派遣しているスレッドのように私にルックスを描いた何Javaで2つのレベルの並列処理を実装する方法

enter image description here

+1

これまでに何を試みましたか?あなたはスレッドとスレッドグループを読みましたか? – Thomas

+0

はい、私はExecutorService、Forkjoin、およびJavaのようないくつかのJavaスレッドライブラリを知っています。 。 。スレッドグループの意味は? – nasim

+0

私は 'java.lang.ThreadGroup'を参照していました。 JavaDocから: 'スレッドグループは、最初のスレッドグループを除くすべてのスレッドグループが親を持っているツリーを形成します。 ' - あなたのことはあなた次第です:) – Thomas

答えて

3

Javaスレッドを使用して実装できる方法はたくさんあります(少なくとも4つは考えています)。//スタートを作成したスレッドを再利用するために古い学校のスレッドプールを使用して子スレッド

  • に参加無地のスレッドを使用して

    • エグゼキュータを使用する。
    • フォーク/結合フレームワークの使用。あなたの問題の詳細についてはなし

    、我々は良いだろうこれについて助言することはできません。または、実際にどのようにスレッドを使用するのか。

    ThreadGroupsはこの問題の助けとは思われません。


    1 - 彼らは絵が千の言葉の価値があると言う...しかし、それはすべての画像のために真実ではありません。あなたのダイアグラムは、あなたのアプリケーションが何をし、どのように動作するのかについて何も教えてくれません。

  • +0

    あなたの答えをありがとう。私が提供できる他の情報は次のとおりです。私は、各レベルのノードを並行して処理しようとしているツリーを持っています。私は、各階層の粗いノードの数が少ない(各レベルで最大32ノード)。私はForkjoinが適切な解決策ではないだろうと思っています(私はそれが細粒ではあるが多数のノードに対して良いと思います)。他のアプローチ(エグゼキュータやプレーンスレッド)に関する詳細を教えてください。ご協力いただき誠にありがとうございます! – nasim

    +0

    Oracle Javaチュートリアルなどの詳細はたくさんあります。これらを読むために私の助けは必要ありません。もう1つの大きなポイントは、計算集約型のタスクでは、物理コア/ハイパースレッドよりも並列性が向上しないということです。 –

    関連する問題