talosのプログラミング教室

Java Gold合格への道 ~並行処理・Executorインタフェース~

スポンサーリンク

こんにちは。たろすです。

今回は並行処理におけるExecutorインタフェースについて説明します。

Executorインタフェースとは

Exexutorインタフェースはタスク送信をタスクの実行方式から分離する方法を提供する、Threadクラスに代わるインタフェースです。

以下のように使用します。

public class Main {
	public static void main(String[] aargs) {

		Runnable task = new Runnable() {
			public void run() {
				System.out.println("execute");
			}
		};

		Executor executor = Executors.newCachedThreadPool();
		executor.execute(task);
	}
}
execute

ちなみにこれをThreadクラスを用いて記述すると以下のようになります。

public class Main {
	public static void main(String[] aargs) {

		Runnable task = new Runnable() {
			public void run() {
				System.out.println("execute");
			}
		};

		Thread thread = new Thread(task);
		thread.start();
	}
}

なにが違うかというと、Exexutorを使用したタスクの実行ではスレッドの生成とタスクの実行が隠蔽されています。

これによりタスクの実行方式を制御できるようになっています。

おわりに

今回は並行処理におけるExecutorインタフェースについて説明しました。