いくつかの種類のJavaスレッド・プールがありますか?

JAVA共通スレッドプールは次の種類があります。

1、newCachedThreadPool

リサイクル可能でない場合は、治療が必要な場合は、柔軟性が、新しいスレッドをアイドル状態のスレッドを再利用するよりも長くキャッシュスレッドプール、スレッドプールを作成します。

スレッドプールのこのタイプによって特徴付けられます:

ワーカースレッドの数は事実上無制限に作成する(実際には、限界があり、数であるInterger。MAX_VALUE)、これは、スレッドプールのスレッドを追加する柔軟であってもよいです。

長い時間は、スレッドプールにタスクを提出しなかった場合は、ワーカースレッドが指定された時間のためにアイドル状態になっている場合、それは、ある(デフォルトは1分です)、その後、ワーカースレッドは自動的に終了します。終了した場合、しかし、あなたが再作成ワーカースレッドに新しいタスク、スレッドプールを提出した場合。

CachedThreadPoolを使用している場合、我々は同時に実行することにより、多数のスレッドに、それ以外の場合は、制御タスクの数に注意を払う必要があり、システムが非常にOOMが発生します。

2、newFixedThreadPool

スレッドプールを作成するために、ワーカースレッドの数を指定します。たびワーカースレッドの数はスレッドプールは、最初のタスクの最大数はキューにプールに提出されるに達した場合、ワーカースレッドを作成するためのタスクを提出します。

FixedThreadPoolスレッド消費を作成する場合、プログラムの効率化とコスト削減効果を向上させるためにスレッドプールを有し、典型的な、優れたスレッドプールです。しかし、スレッドプールが実行可能なタスクでない場合には、スレッドプールのアイドルが、それは労働者を解放するだけでなく、いくつかのシステムリソースを占有しないとき。

3 newSingleThreadExecutor

あるエグゼキュータは、単一のねじ付きの作成、タスクのみを実行するための独自のワーカースレッドを作成するには、それだけですべてのタスクが指定された順(FIFO、LIFO、優先順位)で実行されることを保証する唯一のワーカースレッドでタスクを実行することになります。このスレッド異常終了した場合、注文の履行を確保するため、それを置き換えるために別のがあるでしょう。単一のワーカースレッドの最大の特徴は、シーケンス内のさまざまなタスクを実行することが保証され、かつ任意の時間に1つのスレッドがアクティブでないせいぜいがあるでしょう。

4、newScheduleThreadPool

固定サイズのスレッドプールを作成するだけでなく、タスクの実行、サポートと定期的な定期的なタスクの実行のタイミングや周期性をサポートしています。

5 newSingleThreadScheduledExecutor

指定された遅延時間後に実行するコマンドをスケジュールすることができ、または定期的に実行するために単一スレッドのexecutorを作成します。スレッドまでの実行スレッドプールは、スレッドはキューに提出した後にアクティブになり、このタイミングまたは遅延実行スレッドの活動で行うことができます。

おすすめ

転載: www.cnblogs.com/gaopengpy/p/12148971.html