ジョブをスレッド プールにディスパッチするメイン スレッドがあります。Java の Executor フレームワークを使用しています。
プロファイラー (VirtualVM) から、各スレッドのアクティビティを確認できます。メイン スレッドが大量に待機していることがわかります (エグゼキューターのキューには上限があるため)。ただし、executor のスレッドは、私が思っていたほどビジーではありません。それらのほとんどは、75% の待ち時間があります。virtualVM では、Monitor で待機していると表示されます。
なぜこれが起こっているのか誰か説明できますか?実行できる作業がまだたくさんあるのに、なぜエグゼキュータ スレッドが待機するのでしょうか? そして、エグゼキュータのパフォーマンスを向上させる方法は? したがって、全体的なパフォーマンスを向上させるには?エグゼキューターのモニターでの待機に関する詳細は素晴らしいでしょう。
ワーカーで実行されるジョブは単なる計算であり、他のものに依存せず、他のスレッドと通信しません (同期なし)。ただし、最終的には、独自の接続を使用してデータベースにデータを配置します.