並行プログラミングのプログラミング方法は、タスクを一連の小さなタスクに分割することです。つまり、スレッド Runnable を開き、それを実行のために Executor (スレッド プール) Executor.execute(Runnalbe ) に送信します 。Executor は、内部スレッド プールを使用して、実行中に操作を完了します。
1.スレッドプールを作成する
Executors クラスは、スレッド プールを作成するための一連のファクトリ メソッドを提供し、返されたスレッド プールはすべてExecutorServiceインターフェイスを実装します。
public static ExecutorService newFixedThreadPool(int nThreads)
固定数のスレッドでスレッド プールを作成します。
public static ExecutorService newCachedThreadPool()
キャッシュ可能なスレッド プールを作成します。execute を呼び出すと、以前に構築されたスレッドが再利用されます (スレッドが利用可能な場合)。既存のスレッドが利用できない場合、新しいスレッドが作成され、プールに追加されます。60 秒間使用されていないスレッドを終了し、キャッシュから削除します。
public static ExecutorService newSingleThreadExecutor()
シングルスレッド Executor を作成します。
public static ScheduledExecutorService newScheduledThreadPool(int corePoolSize)
タイミングと定期的なタスクの実行をサポートするスレッド プールを作成します。これは、ほとんどの場合、Timer クラスを置き換えるために使用できます。
Executor executor = Executors.newFixedThreadPool(10);
Runnable task = new Runnable() {
@Override
public void run() {
System.out.println("task over");
}
};
executor.execute(task);
また
1 executor = Executors.newScheduledThreadPool(10);
2 ScheduledExecutorService scheduler = (ScheduledExecutorService) executor;
3 scheduler.scheduleAtFixedRate(task, 10, 10, TimeUnit.SECONDS);