Using ThreadPoolExecutor in MultiThreaded applications.

Performing Asynchronous Tasks Where No Return Value Is Needed Using a Runnable Class Instance

Performing Asynchronous Tasks Where a Return Value Is Needed Using a Callable Class Instance

Defining Asynchronous Tasks Inline using Lambdas