Runnable と Callable

クラスのインスタンスが他スレッドで実行することを想定してデザインされている、という意味で、CallableのインターフェイスはRunnableに似ています。
両者の違いは、Runnableは戻り値の指定が出来ず例外としてRuntimeExceptionしかスローできないのに対し、Callableは戻り値を指定可能でどんな例外もスローすることができる点です。