The main implementation of the Future interface is the FutureTask class . It is used by the ExecutorService classes to represent a submitted job, etc. Callable (e.g. Runnable ) is a simple interface that you implement yourself. It completes the task that you want ExecutorService thread pools to execute. You must download the source banks for these classes and take a look at the Java code yourself.
None of these classes contain any JVM black magic or anything else. For example, if you build the Callable class, it will not run in another thread unless you send it to the thread pool. You can use Callable in many different places that have nothing to do with streams.
The black magic JVM around Future and Callable is mainly contained in the Thread class. It contains basic support that does the current job of completing a task in another thread. There is still a lot of Java code in it if you want to see what it does, but there are natural calls that are real magic.
Here's a good tutorial on how to use the executor services that were added in Java in 1.5.
source share