私は Java でマルチスレッド ソリューションを作成して、2 つのシステム A と B を接続しています。システム A は完全にシリアルであり、スレッド化されておらず、システム B に送信するデータを提供します。システム B は、複数のソースからのデータを非同期で同時に受け入れます。時間。
スレッドの管理に ThreadPoolExecutor を使用しています。システム A は新しいオブジェクトを作成できませんが、静的オブジェクトを呼び出すことはできるため、ThreadPoolExecutor (これも静的) をラップするクラス TP の静的シングルトン インスタンスを使用しています。
ここが私が立ち往生している場所です。本格的に始める前に、セットアップの非常に基本的なテストを行っています。テスト用に T1 と T2 の 2 つのクラスを作成しました。これらの各クラスは、クラス TP (静的シングルトンが作成される場所) をインポートします。T1 がいくつかのオブジェクトを TP キューに追加し、次に T2 がさらにオブジェクトを追加します。
TP オブジェクトは静的として宣言されていますが、2 つのバージョンが並行して実行されているように見えます。T2 によってキューに送信されたオブジェクトは、T1 によって送信されたオブジェクトがすべて実行される前に実行されています。また、T1 も T2 も ThreadPoolExector で shutdown() を呼び出さないため、どちらもハングして終了しません。
異なる Java 実行可能ファイルからでも、処理する何かを送信するたびに基本的にウェイクアップするトレッドのデーモン静的インスタンスを作成するにはどうすればよいですか?