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