スレッド プールを使用すると、システム リソースのコストの節約、スレッドの作成と破棄にかかる時間の節約など、多くの利点があります。より多くのタスクを処理する必要がある場合、スレッドプールは使えますが、Javaスレッドプールの使い方が分からない方も多いのではないでしょうか?今日は、Java で 4 つのスレッド プールを使用する方法を説明します。
スレッド プールの概要:
スレッド プールはマルチスレッド処理の一種で、タスクは処理中にキューに追加され、処理後に自動的に追加されます。スレッドが作成されるので、これらのタスクを開始します。スレッド プールのスレッドはバックグラウンド スレッドです。各スレッドはデフォルトのスタック サイズを使用し、デフォルトの優先順位で実行され、マルチスレッド アパートメント内にあります。マネージ コード内でスレッドがアイドル状態になっている場合 (イベントの待機中など)、スレッド プールは別のワーカー スレッドを挿入して、すべてのプロセッサをビジー状態に保ちます。すべてのスレッド プールのスレッドが常にビジー状態であり、キューに保留中の作業が含まれている場合、スレッド プールはしばらくしてから別のワーカー スレッドを作成しますが、スレッドの数が最大値を超えることはありません。最大数を超えるスレッドはキューに入れることができますが、他のスレッドが終了するまで開始されません。
Java での 4 つのスレッド プールの使用:
Java は、Executor を通じて次の 4 つのスレッド プールを提供します。 newCachedThreadPool はキャッシュ可能なスレッド プールを作成します。スレッド プールの長さが処理の必要性を超えた場合、アイドル状態のスレッドは柔軟にリサイクルできます。リサイクルする方法がない場合は、新しいスレッドが作成されます。
newFixedThreadPool は、同時スレッドの最大数を制御できる固定長のスレッド プールを作成します。超過したスレッドはキューで待機します。
newScheduledThreadPool は、スケジュールされた定期的なタスクの実行をサポートする固定長のスレッド プールを作成します。
newSingleThreadExecutor は、タスクの実行に唯一の作業スレッドのみを使用するシングルスレッド スレッド プールを作成し、すべてのタスクが指定された順序 (FIFO、LIFO、優先順位) で実行されるようにします。
多くの
Java トレーニング ビデオ
以上がJavaスレッドプールとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。