Java Gold合格への道 ~並行処理・Callableインタフェース~
スポンサーリンク
こんにちは。たろすです。
今回は並行処理におけるCallableインタフェースについて説明します。
Callableインタフェースとは
マルチスレッドプログラミングで使われるRunnableインタフェースですが、Runnableインタフェースで定義されているrunメソッドは戻り値を返したり、例外をスローしたりできません。
戻り値を返したり、例外をスローしたりしたいときに使用するのがCallableインタフェースです。
Callableインタフェースで定義されているcallメソッドはそれらが可能です。
public class Main { public static void main(String[] args) { Callable<String> task = new Callable<String>() { public String call() throws Exception { return "call"; } }; try { ExecutorService executorService = Executors.newCachedThreadPool(); Future<String> future = executorService.submit(task); System.out.println(future.get()); } catch (Exception e) { e.getStackTrace(); } } }
call
Callableインタフェースを実装するタスクの実行にはExecutorServiceのsubmitメソッドを使用します。
submitの戻り値はFutureオブジェクトで、getメソッドによって中身(callメソッドの戻り値)を取得できます。