(41)Javaスレッドプールとの契約の種類及び特性に記載します

プログラムスレッドはあまり使用し、無制限に作成したスレッドを避けるために、プログラムのパフォーマンスと安定性が低下している原因になりますスレッドプールの技術を。

スレッドプール内のスレッドの数は、実行タスクを完了した後、スレッドを実行するスレッドプールのスレッドに実行可能なタスクオブジェクトにパッケージを入れて、新しいタスクがあり、限られている、あなたはすぐに次の作業に行くことができます。

プール内のスレッドの数は、固定サイズであってもよく、それは弾性的に伸縮性であってもよいです。

Javaおよび請負:

JDK5.0 以降のバージョンは、プロパティの最も高度な並行処理機能を導入しているjava.util.concurrentのパッケージ、マルチスレッドプログラミング、現代のマルチプロセッサ、マルチコアシステムのパワーをフルに活用するために設計されて大規模な同時実行アプリケーションの準備。主にそれが含まれている原子量、同時コレクション、シンクロナイザ、リエントラントロック、強力なサポートを提供し、スレッドプールの構造を

 スレッドプール 5種類作成しました:

 

1、シングルスレッド実行者スレッドプールの一つのスレッドのみなので、すべてのタスクの実行順序が提出され、

代码: Executors.newSingleThreadExecutor()

 

2、キャッシュされたスレッドプール:スレッドプールのスレッドが多くを同時に実行する必要がある必要があり、することが可能な古いスレッド新しいタスクの実行を再トリガし、スレッドChaoguo場合 60 秒を実行していなかった、それが終了すると、プールから削除されます

コード: Executors.newCachedThreadPool()

 

3、固定スレッドプール:なしタスクの実行がない場合、スレッドが待機する、スレッドプール内のスレッド数が固定されています、

コード: Executors.newFixedThreadPool(4)

コンストラクタパラメータ 4は、スレッドプールのサイズであり、あなたが任意に設定することができ、そしてすることができるCPU コア一貫したCPUの数が取得コアINT cpuNums = Runtime.getRuntime()availableProcessors(の数 );

 

4、スケジュールスレッドプール:スレッドプールで実行するタスクをスケジュールするために使用が直接実行されないことがあり一度実行する頻度... 戦略タイプ

コード: Executors.newScheduledThreadPool()

 

5、シングルスレッドスケジュールプール:一つだけのスレッドがタスクをスケジュールするために使用される割り当てられた時間内に、コードを: Executors.newSingleThreadScheduledExecutor()

 

おすすめ

転載: www.cnblogs.com/paradis/p/11432945.html