1
JavaAdvanced#concurrency
Runnable.run() returns void and cannot throw checked exceptions. Callable.call() returns a value and can throw checked exceptions; used with ExecutorService for Futures.
Callable<Integer> task = () -> { return 42; };
Runnable r = () -> System.out.println("no return value");