you should note that the Callable interface is similar to Runnable, in that both are designed for classes whose instances are potentially executed by another thread
but a Runnable, however, does not return a result and cannot throw a checked exception.