私は、HTTP 経由でサーバー側にアクセスする Java クライアントを使用して、データの新しいページをロードするためのいくつかの小さな要求を作成しています。すべての非 UI 処理を処理するスレッド プールを維持しているため、バックグラウンドのクライアント側タスクとサーバーへの接続を必要とするタスクを処理します。いくつかのパフォーマンスの問題を調査してきましたが、スレッドプールが可能な限り適切に設定されているかどうか確信が持てません。現在、コア プール サイズが 8 の ThreadPoolExecutor を使用しています。ワーク キューには LinkedBlockingQueue を使用しているため、最大プール サイズは無視されます。間違いなく、すべての状況でこの特定のことを簡単に行うことはできませんが、ベストプラクティスはありますか. 現時点での私の考えは
1) LinkedBlockingQueue の代わりに SynchronousQueue を使用するように切り替えて、プールが最大プール サイズの数値まで拡大できるようにします。2) 最大プール サイズを無制限に設定します。
基本的に、私の現在の懸念は、サーバー側で時折発生するパフォーマンスの問題により、スレッド プール サイズの上限が原因で、関係のないクライアント側の処理が停止することです。制限を解除することに対する私の懸念は、クライアントでこれらのスレッドを管理する際の追加のヒットであり、おそらく 2 つの悪のうちの良い方です。
提案、ベスト プラクティス、または参考資料はありますか? 乾杯、ロビン