Javaのスレッドプールとは何ですか

(*-*)浩
リリース: 2019-11-12 09:38:16
オリジナル
2309 人が閲覧しました

スレッド プールは、処理中にタスクをキューに追加し、スレッドの作成後にこれらのタスクを自動的に開始するマルチスレッド処理の形式です。スレッド プールのスレッドはバックグラウンド スレッドです。各スレッドはデフォルトのスタック サイズを使用し、デフォルトの優先順位で実行され、マルチスレッド アパートメント内にあります。

Javaのスレッドプールとは何ですかスレッドがマネージ コード内でアイドル状態 (イベントの待機中など) にある場合、スレッド プールは別のスレッドを挿入します。ワーカー スレッドを使用して、すべてのプロセッサをビジー状態に保ちます。

すべてのスレッド プールのスレッドが常にビジー状態であり、キューに保留中の作業が含まれている場合、スレッド プールはしばらくしてから別のワーカー スレッドを作成しますが、スレッドの数が最大値を超えることはありません。最大数を超えるスレッドはキューに入れることができますが、他のスレッドが終了するまで開始されません。 (推奨学習:

java コース

)

Java での 4 つのスレッド プールの使用:


Java はエグゼキュータを通じて 4 つのスレッド プールを提供します


newCachedThreadPool は、キャッシュ可能なスレッド プールを作成します。スレッド プールの長さが処理の必要性を超えた場合、アイドル状態のスレッドは柔軟にリサイクルできます。リサイクルがない場合は、新しいスレッドが作成されます。


newFixedThreadPool は、同時スレッドの最大数を制御できる固定長のスレッド プールを作成します。超過したスレッドはキューで待機します。


newScheduledThreadPool は、スケジュールされた定期的なタスクの実行をサポートする固定長のスレッド プールを作成します。


newSingleThreadExecutor は、タスクの実行に唯一の作業スレッドのみを使用するシングルスレッド スレッド プールを作成し、すべてのタスクが指定された順序 (FIFO、LIFO、優先順位) で実行されるようにします。


newCachedThreadPool

キャッシュ可能なスレッド プールを作成します。スレッド プールの長さが処理の必要性を超えた場合、アイドル状態のスレッドを柔軟にリサイクルできます。リサイクルして、新しいスレッドを作成します。サンプルコードは次のとおりです:

package test;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ThreadPoolExecutorTest {
    public static void main(String[] args) {
        ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
        for (int i = 0; i < 10; i++) {
            final int index = i;
            try {
                Thread.sleep(index * 1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            cachedThreadPool.execute(new Runnable() {
                public void run() {
                    System.out.println(index);
                }
            });
        }
    }
}
ログイン後にコピー

以上がJavaのスレッドプールとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート