0

並列処理を実行する Java アプリを実装しています。アプリが起動すると、スレッド プールに属する 4 つのスレッドが作成されます。次に、LinkedBlockingQueueに追加されたオブジェクトの受信を開始します。各オブジェクトには ID があり、ID に応じて事前定義されたタスクが実行されます。私の「キュー コンシューマ」は、初期化された 4 つのスレッドであり、オブジェクトをキューから取り出し、各オブジェクトに対応するタスクを実行し始めます。

各オブジェクトが処理されるスレッドを定義することは可能ですか? 「各スレッドにタスクをスケジュール」したい。

例えば:

  1. 最初のオブジェクトがキューから取得されると、Thread1 によって処理されます。
  2. 2 番目のオブジェクトが最初のオブジェクトとは異なる ID の場合、Thread2 によって処理されます。
  3. 3 番目のオブジェクトが、取得された最初のオブジェクトと同じ ID を持つ場合、「スレッド 1 に移動」します。

どうすればこれを実装できますか?

ありがとう

4

2 に答える 2

0

1 つのキューとスレッド プールの代わりに、個々のスレッドごとに 1 つのキューを持つことができます。当然、これらすべてを自分で管理するか、ソフトウェア パッケージを使用する必要があります。

于 2013-11-14T14:44:13.383 に答える