私はJavaマルチスレッドと同時実行ツールを使用するのは比較的新しいです。イベントプロデューサーを持つアプリを実装しています(それを と呼びましょうEventProducer
)。EventProducer
スレッド プールFixedThreadPool
があり、処理するイベントごとに 1 つの新しいスレッドが送信され、新しいEventProcessor
スレッドがプールに送信されます。
イベントが到着するたびに、プール内のスレッドが作成されています。EventProcessor
しかし、問題は、そのスレッド (イベント要求ごとに固有) を、アプリケーション スコープであると想定される 2 つのスレッドと通信したいことです。つまりService1
、アプリケーションにはそれらのインスタンスしかありませんService2
。どちらにもスレッドプールがあり、タスクを同時に処理できます。
その特定EventProcessor
は一連のタスクをに送信しService1
、各タスクの応答を返します。その応答のために、 CompletionServiceを探しましたが、双方向通信用のブロッキング キューと統合する方法がわかりません。その後、その応答に応じて、 でEventProcessor
実行するアクションまたは別のアクションを送信しService2
ます。Service2
は、そのアクションに関する応答も に送信しEventProcessor
ます。
このような問題にどのように取り組むことができるかを知っている人はいますか? 最初のステップを達成するために紹介が必要です。アイデアをプールします。