ホームページ  >  記事  >  Java  >  スレッドプールの実装方法

スレッドプールの実装方法

王林
王林転載
2020-02-06 18:26:543516ブラウズ

スレッドプールの実装方法

スレッド プールには次の実装メソッドがあります:

Executor は現在 5 つの異なるスレッド プール作成構成を提供します:

1 , newCachedThreadPool( )

これは、多数の短期作業タスクを処理するために使用されるスレッド プールです。これには、スレッドをキャッシュして再利用しようとするという、いくつかの特徴があります。キャッシュされたスレッドが使用できない場合は、 、新しいワーカー スレッドが作成されます。スレッドが 60 秒を超えてアイドル状態になると、スレッドは終了され、キャッシュが削除されます。長時間アイドル状態の場合、このスレッド プールはリソースを消費しません。 SynchronousQueue を内部でワーク キューとして使用します。

ビデオ チュートリアルの推奨事項: java ビデオ チュートリアル

2. newFixedThreadPool (int nThreads)

指定された数 (nThreads) を再利用します。 ) スレッドは背後で無制限のワーク キューを使用し、最大で nThreads 個のワーカー スレッドが常にアクティブになります。つまり、タスクの数がアクティブなスレッドの数を超えると、アイドル状態のスレッドがワーク キューに現れるまで待機し、ワーカー スレッドが終了すると、指定された数の nThread を補うために新しいワーカー スレッドが作成されます。

3. newSingleThreadExecutor()

その特徴は、作業スレッドの数が 1 に制限され、無制限のワーク キューを操作するため、すべてのタスクが確実に実行されることです。順次実行されるため、最大 1 つのタスクがアクティブになり、ユーザーはスレッド プール インスタンスを変更できないため、スレッド数の変更を回避できます。

4、newSingleThreadScheduledExecutor() および newScheduledThreadPool(int corePoolSize)

は、スケジュールされたまたは定期的な作業スケジュールを実行できる ScheduledExecutorService を作成します。または複数のワーカー スレッド。

5. newWorkStealingPool(intParallelism)

これは無視されることが多いスレッド プールです。この作成メソッドは Java 8 でのみ追加され、ForkJoinPool が構築されます。 Work-Stealing アルゴリズムを使用すると、タスクは処理順序を保証せずに並列処理されます。

関連記事チュートリアルの共有: Java クイック スタート

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

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。