スレッド
スレッドは、プログラム実行の最小単位です。スレッドは、エンティティが基本ユニットは、スケジューリングとディスパッチシステムから独立しているとしたプロセスであります
- それは不可欠なリソースの操作に少しだけを持って、彼らはシステムリソースを持っていないスレッド
- それは他のプロセスとすべてのスレッドを共有リソースがあり、同じプロセスに属しています。
- スレッドが作成し、別のスレッドが同じプロセス内で複数のスレッド間で同時に実行することができる元に戻すことができます。
並行並列
同時:アプリケーションの複数のスレッド同時であってもよい
実質的な同時プログラムチャネル(またはスレッド)の複数の間で多重化物理CPU(物理CPUの複数であってもよい)であり、同時実行が制限された物理リソースであります強制力のあるマルチユーザ共有効率を改善します。
このような手順では、など、すべての待機中の並行処理を持って目を覚ますと、実行
パラレル:パラレルは、例えば、マルチコアプロセッサ、同時に複数のアプリケーションを実行します。
そのようには同時競争、待っているの概念はありません。
マルチスレッド
アプリケーションが複数のスレッドを持って、我々は、それがマルチスレッドと呼ばれているこのケースを置きます。
スレッドプール
スレッドプールを参照し、マルチスレッドアプリケーションの初期化プロセス内のスレッドのセットを作成することです
、あなたはこれらのスレッドを再利用するのではなく、新しいスレッドを作成するために、新しいタスクを実行する必要があります(スレッドは再利用性を向上させ、パフォーマンスのオーバーヘッドを低減し)
プールでバックアップ使用するスレッドその後、タスクの待ちを割り当てます。
スレッドプールの役割:
システムの実行スレッドの数を制限します。
システムの環境に応じて、自動または手動でスレッド数を設定し、最高の業績を達成するために、以下の廃棄物のシステムリソース、非効率的なシステムは、より混雑し起こします。
スレッドプールは、スレッド数を制御して、他のスレッドが並んで待っています。
Javaのスレッドプールのフレームワーク
スレッドプールは3種類に分けられます。
- 基本的なスレッドプールのThreadPoolExecutor
- 遅延タスクスレッドプールのScheduledThreadPoolExecutor
- 分割統治スレッドプールForkJoinPool。
Executor:
线程池的最上层接口,提供了任务提交的基础方法。
ExecutorService:
提供了线程池管理的上层接口,如池销毁、任务提交、异步任务提交。
ScheduledExecutorService:
提供任务定时或周期执行方法的 ExecutorService。
AbstractExecutorService:
为 ExecutorService 的任务提交方法提供了默认实现。
ThreadPoolExecutor:
线程池类,提供线程和任务的调度策略。
ScheduledThreadPoolExecutor:
属于线程池的一种,它可以允许任务延迟或周期执行,类似java的Timer。
ForkJoinPool:
JDK1.7加入的成员,也是线程池的一种。
只允许执行 ForkJoinTask 任务,它是为那些能够被递归地拆解成子任务的工作类型量身设计的。
其目的在于能够使用所有可用的运算资源来提升应用性能。
Executors:
创建各种线程池的工具类。