[]番号のカーネルスレッドのJUC ThreadPoolExecutorの方法を合理的な配分

ハードウェア、メモリやパフォーマンスによって制限され、私たちはいずれかのスレッドを無制限に作成することはできません、各マシンの最大許容スレッドは、有界値です。したがって、スレッドThreadPoolExecutor管理の数が制限されます。スレッドプールは、提出されたタスクを実行するために、これらのスレッドの限られた数を使用することです。しかし、マルチユーザ、非常に同時実行アプリケーションのために、提出されたタスクの非常に大きな数は、はるかにスレッドの最大許容数よりもなります。この問題を解決するためには、キューイングメカニズムを導入する必要がある、またはメモリ内、または大規模な記憶媒体にハードディスクの容量。JavaのThreadPoolExecutorのみサポートタスクは、タスクを実行するために、まだ持っていた時間をステージングすることにより、メモリ、BlockingQueueのにキューイング。

スレッド管理がより複雑で、これは、スレッド、待機/ウェイク、同期/ロック、スレッドの作成と死の問題の数を含むことになります。

スレッドプール内のスレッドの作成と破棄のための7つのパラメータのThreadPoolExecutor、共同責任

  • int型corePoolSize
  • int型maximumPoolSize
  • 長いkeepAliveTimeが
  • TimeUnitでユニット
  • BlockingQueueのワークキュー
  • threadFactory threadFactory
  • RejectedExecutionHandlerハンドラ

参照

1.java共通スレッドツール

2:ライフサイクルスレッド

3:マルチスレッドの理解

4:スレッドプールのメカニズムを実行します

5:変数のスレッド・プールを定義します

違い6.corePoolSizeとmaxPoolSize

7:キュースレッドプールの無限大を遮断することが適切です

8:どのように多くの一般的なキュースレッドプールの設定

9:スレッドプールの実装、ソースコード一般的に用いられる方法

10:スレッドプールとスレッド、使用されるスレッドプールとどのような状況の下で、ビジネスシーンの違い

11:スレッドの状態、スレッドプール設定モード、共通のスレッドプール

公開された112元の記事 ウォン称賛46 ビュー50000 +

おすすめ

転載: blog.csdn.net/AV_woaijava/article/details/105114349