JAvaマルチスレッド初心者(Executorコントローラ)
1202 ワード
Executorコントローラはjdk 1である.5以降に追加されたツールクラス.仲介者として同時タスクを統一的に管理するために使用されます.
1.CacheThreadPoolは、タスクごとにスレッドを開きます.
shutdown()メソッドの呼び出しにより、新しいタスクがExecutorにコミットされないようにします.
2.FixedThreadPoolは限られたスレッドを使用してタスクを完了します.スレッドプールの概念のように、使用するスレッドは指定された数を超えません.
3.SingleThreadExecutorは1つのスレッドのみを生成し、すべてのタスクはこのスレッドで実行され、順番に実行されているようです.前のタスクが完了してから、後のタスクが実行されます.これらのタスクはキューの形式を形成します.
4.ScheduledExecutorServiceはタイマーの代わりにタスクの割り当てを行うことができます
1.CacheThreadPoolは、タスクごとにスレッドを開きます.
ExecutorService exec = Executors.newCachedThreadPool();
for (int i = 0; i < 2; i++) {
final int c = i;
exec.execute(new Runnable(){
public void run() {
// TODO Auto-generated method stub
System.out.println(c+":"+Thread.currentThread().getName());
}}
);
}
exec.shutdown();
shutdown()メソッドの呼び出しにより、新しいタスクがExecutorにコミットされないようにします.
2.FixedThreadPoolは限られたスレッドを使用してタスクを完了します.スレッドプールの概念のように、使用するスレッドは指定された数を超えません.
ExecutorService exec = Executors.newFixedThreadPool(1);
3.SingleThreadExecutorは1つのスレッドのみを生成し、すべてのタスクはこのスレッドで実行され、順番に実行されているようです.前のタスクが完了してから、後のタスクが実行されます.これらのタスクはキューの形式を形成します.
ExecutorService exec = Executors.newSingleThreadExecutor();
4.ScheduledExecutorServiceはタイマーの代わりにタスクの割り当てを行うことができます
ScheduledExecutorService scheduExec = Executors
.newScheduledThreadPool(1);