この記事は、java に関する関連知識を提供します。主に、Java スレッド プールの 4 つの作成方法の詳細な分析を紹介します。接続プールは、接続バッファ プールを作成および管理するための技術です。これらの接続は、必要なスレッドで使用する準備ができています。見てみましょう。皆さんのお役に立てれば幸いです。
推奨学習: 「java ビデオ チュートリアル 」
スレッド プールについて話す前に、接続プールの定義
接続プールは、接続を必要とするあらゆるスレッドで使用できる接続のバッファー プールを作成および管理するテクノロジです
接続プールの機能は次のように確認できます:
Threadプール (英語: thread pool) : スレッドの使用パターン。スレッドが多すぎると、スケジューリングのオーバーヘッドが生じ、キャッシュの局所性と全体的なパフォーマンスに影響します。スレッド プールは複数のスレッドを維持し、スーパーバイザが同時に実行できるタスクを割り当てるのを待ちます。これにより、存続期間の短いタスクを処理するときにスレッドを作成および破棄するコストが回避されます。スレッド プールは、コアの完全な利用を保証するだけでなく、過剰なスケジューリングを防ぐこともできます。
機能:
その機能は次のとおりです:
既存のスレッドを再利用し、オブジェクトの作成と破棄のコストを削減し、同時スレッドの最大数を効果的に制御し、パフォーマンスを向上させます。過剰なリソースの競合や輻輳を回避しながら、システム リソースの使用効率を高めます。スケジュール実行、定期実行、シングルスレッド、同時実行制御などの機能を提供します。
具体的な構成は以下の通りです:
作成方法は4つあります。合計 プール内のスレッドは 1 つ、プール内のスレッドは n つ、プール内のスケーラブル スレッド、プール内のタイミング スレッドと周期スレッドです
Executors.newFixedThreadPool(int)
N スレッドプールは最大の同時実行数を制御します。超過したスレッドはキュー内で待機します
ExecutorService threadPool1 = Executors.newFixedThreadPool(5); //5个窗口
Executors.newSingleThreadExecutor()
プールごとに 1 つのスレッド
ExecutorService threadPool2 = Executors.newSingleThreadExecutor(); //一个窗口
Executors.newCachedThreadPool ()
必要に応じてプールを拡張してスレッドを作成したり、アイドル状態のスレッドを柔軟にリサイクルしたりできます
スレッド実行後は、拡張せずにそのまま使い続けることもできます
ExecutorService threadPool3 = Executors.newCachedThreadPool();
Executors.newScheduledThreadPool()
、タイミングと定期的なタスクの実行をサポート
//表示延迟一秒,后执行3秒 ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5); scheduledThreadPool.scheduleAtFixedRate(new Runnable() { @Override public void run() { log.info("delay 1 seconds, and excute every 3 seconds"); } }, 1, 3, TimeUnit.SECONDS);
推奨学習: 「Java ビデオ チュートリアル 」
以上がJavaスレッドプールの4つの作成方法を簡単にまとめますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。