Asynchronous programming provides a non-blocking, event-driven
programming model.
To implement asynchrony in Java, you would need to use 'Future' or
'FutureTask', available in the java.util.concurrent package. Although the
former is an interface, the latter is an implementation of the Future
interface. In essence, in using 'Future' in your code, your asynchronous task
will be executed immediately with the promise of the result being made
available to the calling thread in the future.
The following code snippet shows an interface with two methods. One
illustrates a synchronous method and the other an asynchronous method