スレッドプールの使用を練習し始めたところです。私は Java でサーバー クライアント バンク アプリを作成しています。Oracle のドキュメントをいくつか読んで、キャッシュされたスレッド プールを使用することを考えています。しかし、いくつかのカウント テストを実行したところ、固定スレッド プールの方が高速であることがわかりました。キャッシュされたスレッド プールが遅延し、不要なスレッドが大量に作成されたようです。(または、ここで何か間違ったことをしているかもしれません)。
私の質問は、実際の状況では、どちらがより効率的でしょうか? または、より効率的な別のタイプのプールがあります。
また、私のカウントテストでは、いくつかの行があります:
ExecutorService executor = Executors.newCachedThreadPool();
for (int i = 0; i < 500; i++) {
Runnable worker = new serv(10000000L + i);
executor.execute(worker);
}
上記の行で、使用されていないスレッドは (新しいスレッドを作成する代わりに) 自動的に再利用されますか?それとも、これが確実に行われるようにするために何か追加する必要がありますか?